有人可以告诉我(或指出一些记录的文档)memcached 计数器如何工作吗?具体来说:它们如何过期?我正在使用 java spymemcached 客户端。
方法
net.spy.memcached.MemcachedClient.incr(String key, int by, long def, int exp)
采用参数“exp”,描述为“该对象的到期时间”
这是否意味着对计数器的每个单独调用都有自己的到期时间?或者调用 incr 是否会缩短 key 的到期时间?
另外,难道不应该有一种方法来获取计数器值吗?或者我应该以 0 的增量调用 incr 吗?
最佳答案
int exp
将覆盖现有的过期时间,并“碰撞”递增的 key 。查看protocol docs了解更多信息。
Also, shouldn't there be a method to get a counter value? Or should I call incr with an increment of 0?
您可以使用MemcachedClient.get
方法获取计数器单元格的值。计数器单元格需要先从 MemcachedClient.set
设置,然后才能递增。我不是 100% 确定 spymemcached ,但有一些memcached库会在递增之前自动将计数器单元设置为 0。
关于过期时间的注释。如果int expr
为-1
,memcached将使用之前的过期时间。如果 int expr
大于 2592000
(30 天),它将被视为 UNIX 时间戳。
关于java - memcached (spymemcached) 计数器和到期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12050407/