【发布时间】:2017-10-30 03:40:26
【问题描述】:
我想从 aerospike 获得记录。所以,我使用的是Client.Get 方法。
但是,每当我执行 Get 操作时,我也想刷新记录的 TTL。所以,通常我们使用WritePolicy,它允许我们设置一个ttl。但是Get方法只接受BasePolicy
以下方法是否正确或有更好的方法?
client.Get(nil, key, bin)
client.Touch(myWritePolicy, key)
【问题讨论】:
我想从 aerospike 获得记录。所以,我使用的是Client.Get 方法。
但是,每当我执行 Get 操作时,我也想刷新记录的 TTL。所以,通常我们使用WritePolicy,它允许我们设置一个ttl。但是Get方法只接受BasePolicy
以下方法是否正确或有更好的方法?
client.Get(nil, key, bin)
client.Touch(myWritePolicy, key)
【问题讨论】:
在operate() 命令中执行此操作,您可以在同一个锁中使用touch() 和get(),一次网络访问。请注意,如果您的记录存储在磁盘上,那么无论您如何更新 TTL,都需要将记录重新写入磁盘上的不同位置,因为 TTL 信息存储在记录元数据中。
【讨论】: