【问题标题】:Hazelcast c++ client, map and TTLHazelcast c++ 客户端、地图和 TTL
【发布时间】:2016-06-27 23:56:50
【问题描述】:

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

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

这种理解正确吗?我猜是这样,但在文档中找不到明确提及。

【问题讨论】:

    标签: hazelcast hazelcast-imap


    【解决方案1】:

    你是对的。使用配置的 ttl 时间时,map.put 存在错误。我刚刚提交了 PR 来修复这里的附加测试:https://github.com/hazelcast/hazelcast-cpp-client/pull/164

    我们错误地为 ttl 发送了 0 而不是 -1。 -1 表示使用配置的 ttl。这对 set API 来说已经是正确的了,问题只出在 put API 上。

    感谢您报告此事。

    【讨论】:

      【解决方案2】:

      不,put 和 set 操作都有相同的底层实现,只是 set 操作不返回 oldValue。
      您可以查看 PutOperationSetOperation 类,它们都在扩展 BasePutOperation
      除非您为每个 put/set 操作设置 ttl,否则驱逐应基于 entry 的最新 ttl 值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多