我在地图中有一个条目(k1,v1),ttl表示60秒。
如果我执行map.set(k1,v2),则ttl不受影响,即该条目将在60秒后被删除。 但是,如果我执行map.put(k1,v2),则ttl将占用存在,即60秒后不会删除条目。
这种理解是否正确?我想是这样的,但在文件中找不到它。
答案 0 :(得分:1)
不,除了set操作不返回oldValue之外,put和set操作都有相同的说明
您可以查看PutOperation
& SetOperation
个类,都在扩展BasePutOperation
除非您为每个put / set操作设置ttl,否则eviction应该基于最新的ttl值。
答案 1 :(得分:1)
你是对的。使用配置的ttl时间时,map.put存在错误。我刚刚提交了修补程序的PR以及其他测试:https://github.com/hazelcast/hazelcast-cpp-client/pull/164
我们错误地为ttl发送了0而不是-1。 -1表示使用配置的ttl。这对于已经设置的API是正确的,问题仅在于使用put API。
感谢您报告此事。