使用redison在redis中配置信号量上的ttl

bejyjqdl  于 2021-06-10  发布在  Redis
关注(0)|答案(1)|浏览(430)

我正在尝试使用redisson获取分布式锁。我已经把范围缩小到 RSemaphore 因为关键部分位于一个React流中,java的单线程拥有并释放锁的契约在这里不起作用。我遇到的情况是redis中的lock对象的ttl为-1(永不过期)。这个信号量用于锁定对象,因此我们的服务集群保持协调,并将创建数千个没有可重入需求的信号量。
我一辈子都找不到在信号量对象上设置ttl的方法。我看到了许可证到期的选项,但没有看到信号量本身的选项。zookeeper在这个环境中不是一个选项,但是我知道zk有多种解决这个问题的方法( ChildReapers 以及 CreateMode.CONTAINER ). 这似乎是最基本的要求 RSemaphore 应用程序编程接口。

vhipe2zx

vhipe2zx1#

我升级了redisson库版本,以便能够访问 expire() 方法。显然从3.11.0(?)开始的版本继承了这些方法 RExpirable .

相关问题