是否有某种带有空闲 TTL 的锁/信号量

Is there some kind of lock / semaphore with idle TTL

我有以下情况。

为了防止并发资源访问,我们使用 RPermitExpirableSemaphore 作为锁。 来自 Expirable 我希望 Redis 中的“锁定密钥”会在一些 TTL 后被删除。但不幸的是它不是。

例如:

并且如果有新的尝试获取锁 X,上述场景将从头开始。

Redisson 中是否有某种锁/信号量提供这种行为?

P.S。我不能手动删除信号量,因为如果有其他客户端在等待释放锁,它们最终会出现异常信号量不存在(当然,因为它已被另一个客户端删除)。结果我们有泄漏的密钥(将来不会使用,因为访问的资源是暂时的)。

该问题已在 3.12.0 版本中修复。
问题:https://github.com/redisson/redisson/issues/2444.
提交:https://github.com/redisson/redisson/commit/1954b8e6fbc262c0a75509ec75df98af73202fd4