2009-10-29 130 views
3

我们发现,使用我们的memcache,一些密钥往往会丢失。为了调试,我使用的命令stats cachedump <slab> <limit>Memcache统计信息cachedump

输出是这样的:

ITEM key-stuff-123-mlgtr-tmura [58 b; 1256946310 s] 
ITEM key-stuff-123-mlgtr-isuca [58 b; 1256946310 s] 
ITEM key-stuff-123-mlgtr-arpan [58 b; 1256946310 s] 
ITEM key-stuff-123-mlgtr-nanhai [59 b; 1256946252 s] 
ITEM key-stuff-123-mlgtr-naka3 [58 b; 1256946250 s] 
ITEM key-stuff-123-mlgtr-erlang [59 b; 1256946250 s] 
ITEM key-stuff-123-mlgtr-junkma [59 b; 1256946250 s] 
ITEM key-stuff-123-mlgtr-wilfue [59 b; 1256946250 s] 
ITEM key-stuff-123-mlgtr-quinte [59 b; 1256946250 s] 
ITEM key-stuff-123-mlgtr-yanbe [58 b; 1256946250 s] 

我得到58 b是大小;但是1256946250 s会是什么?在几秒内到期?这似乎很高(55岁)!所以也许我们的问题在这里......或者我误解了一些东西。

谢谢!

+0

“我们发现,使用我们的memcache,一些密钥往往会丢失”我发现最好是在假设这会发生的情况下处理memcache。这是一个缓存,而不是数据存储。如果你不能丢失钥匙,那么使用更耐用的东西。 – 2011-04-21 00:11:00

回答

7

这是到期时间,作为unix时间戳。

所以,用 '1256946250' 项目将过期 '周六10月31日1点44分10秒2009年'

+0

请注意[此SO帖子](http://stackoverflow.com/questions/1418324/memcache-maximum-key-expiration-time),它突出了在memcache中设置值小于30天的任何值被视为* an偏移到当前时间*,而大于30天的值实际上被视为时间戳。当然,这不会影响cachedump命令显示的时间戳。在Linux系统上的“ – DarthPablo 2014-10-09 15:13:24

2

这些都是UNIX风格的时间戳。你可以去here将它们转换为人类可读的日期时间。基本上,这是自从1970年1月1日以来的秒数

+0

”或“date -d @ 1256946250”。 – markdrayton 2011-11-27 20:12:43