【发布时间】:2019-08-03 05:26:01
【问题描述】:
我正在使用 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 实现非常脆弱。
【问题讨论】: