Hazelcast c++ 客户端、地图和 TTL
Hazelcast c++ client, map and TTL
我在地图中有一个条目 (k1, v1),ttl 为 60 秒。
如果我执行 map.set(k1, v2),ttl 不会受到影响,即该条目将在 60 秒后删除。
但是,如果我这样做 map.put(k1, v2),ttl 将抓住存在,即 60 秒后不会删除条目。
这个理解对吗?我猜是这样的,但在文档中找不到明确提到它。
不,put 和 set 操作都具有相同的底层实现,只是 set 操作不 return oldValue。
你可以看看 PutOperation
& SetOperation
类,两者都在扩展 BasePutOperation
.
除非您为每个 put/set 操作设置 ttl,否则驱逐应基于条目的最新 ttl 值。
你是对的。使用配置的 ttl 时间时 map.put 存在错误。我刚刚提交了带有附加测试的修复的 PR:https://github.com/hazelcast/hazelcast-cpp-client/pull/164
我们错误地为 ttl 发送了 0 而不是 -1。 -1 表示使用配置的 ttl。这对于 set API 已经是正确的,问题仅在于 put API.
感谢您报告此事。
我在地图中有一个条目 (k1, v1),ttl 为 60 秒。
如果我执行 map.set(k1, v2),ttl 不会受到影响,即该条目将在 60 秒后删除。 但是,如果我这样做 map.put(k1, v2),ttl 将抓住存在,即 60 秒后不会删除条目。
这个理解对吗?我猜是这样的,但在文档中找不到明确提到它。
不,put 和 set 操作都具有相同的底层实现,只是 set 操作不 return oldValue。
你可以看看 PutOperation
& SetOperation
类,两者都在扩展 BasePutOperation
.
除非您为每个 put/set 操作设置 ttl,否则驱逐应基于条目的最新 ttl 值。
你是对的。使用配置的 ttl 时间时 map.put 存在错误。我刚刚提交了带有附加测试的修复的 PR:https://github.com/hazelcast/hazelcast-cpp-client/pull/164
我们错误地为 ttl 发送了 0 而不是 -1。 -1 表示使用配置的 ttl。这对于 set API 已经是正确的,问题仅在于 put API.
感谢您报告此事。