Hazelcast c ++客户端,地图和TTL

时间:2016-06-27 23:56:51

标签: hazelcast hazelcast-imap

我在地图中有一个条目(k1,v1),ttl表示60秒。

如果我执行map.set(k1,v2),则ttl不受影响,即该条目将在60秒后被删除。 但是,如果我执行map.put(k1,v2),则ttl将占用存在,即60秒后不会删除条目。

这种理解是否正确?我想是这样的,但在文件中找不到它。

2 个答案:

答案 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。

感谢您报告此事。