为了账号安全,请及时绑定邮箱和手机立即绑定

如果进程终止,Redisson 缓存映射不会逐出

如果进程终止,Redisson 缓存映射不会逐出

三国纷争 2022-08-03 16:28:09
我正在使用 Redisson 的 RMapCache 来处理应用程序中的一些分布式集合。这些集合中的密钥应该在一段时间后过期,因此在添加密钥时,我设置了 TTL:RMapCache<String, MyClass> cacheMap = GetMap("test");cacheMap.put("DTO1", myClassInstance, 20, TimeUnit.SECONDS);因此,在 20 秒后,密钥应过期。如果进程在过期时间戳之前未终止,则此方法非常有效。但是,如果由于任何原因进程死亡,则永远不会清除密钥,这意味着逐出由 Java 进程中的 Redisson 处理,而不是由 Redis 本身处理。有没有办法让 Redisson 使用 Redis 的内置 EXPIRE 功能?因此,在 Map 中插入的进程不负责密钥逐出。我发现当前的 redisson 实现非常脆弱。
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

一旦在崩溃后创建了相同的RMapCache对象,它就会启动逐出调度程序,从而从Redis清除过期的条目。

如果只想依靠 Redis 逐出过程,则使用 RBucket 对象。Redis 不提供 TTL 的映射条目过期。


查看完整回答
反对 回复 2022-08-03
  • 1 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信