Aerospike为特定字段设置有效期



我有一个Aerospike缓存,它由类似json结构的值的数据列表组成。

示例值:{"name": "John", "count": 10}

我在想是否可以只为计数字段设置一个过期时间,并在一段时间后重置它。

Aerospike不支持这种开箱即用的功能。你必须对此进行编码(因此我想你的另一篇帖子是:更新Aerospike中单个字段的最佳方式(。您可以添加过滤器,仅根据记录的元数据(记录的最后一次更新时间,可通过表达式访问(或任何其他逻辑来执行此操作,然后让后台操作查询执行此操作应该是非常高效和高性能的。

另一种方法可以在bin数据中添加您自己的自定义过期时间戳,如下所示:CCD_ 2。

在这里,我使用如下(您可以使用不同的未来时间戳格式(:

$ date --date="2023-01-01 09:00:00" +%s%N
1672563600000000000

现在,当您读取记录时,如果您的当前时钟落后于validTill,则读取一个返回count=10的表达式,否则为0。如果读取时的计数值是您所关心的全部值,则这可以工作。此外,当您在将来的写入中更新计数值时,您可以使用相同的表达式逻辑来更新countvalidTill

如果这对你有效,你就不必使用后台作业扫描和更新记录。

相关内容

  • 没有找到相关文章

最新更新