在运行时,我想检索有关memcached中某些项的过期时间信息.我没有在memcached上找到任何相关的接口.我可以这样做吗?类似于:mc.get_expire_time('key')
谢谢
Python memcache API不提供这样的功能.但是,您可以telnet到memcached以转储所有密钥和到期时间.
> telnet localhost 11211
stats items
显示包含数据的slab.
stats items STAT items:12:number 1108 ... END
然后stats cachedump slab_id count
用来查看密钥和到期时间.将计数设置为0以检索所有键.
stats cachedump 12 1 ITEM abc [100 b; 1528336485 s] END
令人讨厌的是,这些信息似乎只在slab stats中提供.从这开始:
[$]> (sleep 1; echo "stats cachedump 1 0"; sleep 1; echo "quit";) | telnet localhost 11211 | grep 'my_key'
并增加slab('cachedump'之后的第一个数字),直到找到合适的slab.一旦你得到一个结果,它将是形式
ITEM my_key [2 b; 1389767076 s]
那里的最后一个数字(1389767076
在这种情况下)是密钥到期时的unixtime.您可以time.localtime()
使用Wolfram Alpha将此数字转换为人类可读的内容,或使用Wolfram Alpha实时更新.
根据memcache协议(文本和二进制)niether get
也不gets
返回到期时间.而且没有其他方法可以检索它.但肯定的,你可以打包到期时间为价值与现在存储什么,当你沿着set
/ add
它,使其检索.