Memcached“stats cachedump”命令未显示所有键
Posted
技术标签:
【中文标题】Memcached“stats cachedump”命令未显示所有键【英文标题】:Memcached "stats cachedump" command was not show all keys 【发布时间】:2018-05-12 02:30:14 【问题描述】:我今天遇到一个奇怪的问题。我通过运行命令“stats items”发现一个slab中有三个项目,但是当我运行命令“stats cachedump 1 0”查看这个slab的项目信息时,只显示两个项目,这个板数为 1。
“stats items”命令的输出:
stats items
STAT items:1:number 3
STAT items:1:number_hot 0
STAT items:1:number_warm 1
STAT items:1:number_cold 2
STAT items:1:age_hot 0
STAT items:1:age_warm 5171
STAT items:1:age 5409
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
STAT items:1:reclaimed 0
STAT items:1:expired_unfetched 0
STAT items:1:evicted_unfetched 0
STAT items:1:evicted_active 0
STAT items:1:crawler_reclaimed 0
STAT items:1:crawler_items_checked 38
STAT items:1:lrutail_reflocked 2
STAT items:1:moves_to_cold 7
STAT items:1:moves_to_warm 3
STAT items:1:moves_within_lru 1
STAT items:1:direct_reclaims 0
STAT items:1:hits_to_hot 0
STAT items:1:hits_to_warm 1
STAT items:1:hits_to_cold 6
STAT items:1:hits_to_temp 0
END
字段“数字”的值为 3 ;在slab1中有三个项目。
“stats cachedump”命令的输出:
stats cachedump 1 0
ITEM foo [3 b; 0 s]
ITEM mykey [12 b; 0 s]
END
显示两个项目,它们的键是 foo 和 mykey 。
我的 memcached 服务器版本:memcached-1.5.3
这是为什么?喊不是显示三个项目?
【问题讨论】:
其中一项似乎已过期。如果再次执行stats items
(在stats cachedump 1 0
命令之后),是否得到相同的结果?
@lgor,是的,我得到相同的结果,同时运行stats cachedump 1 0
command
这仅在您的第 3 项已过期的情况下才有意义。您看到的 STAT items:1:number 3
结果可能是由于 Memcached 延迟过期。只有在执行项目搜索之前,它才能知道它已过期。你可以查看官方Mecached wiki 解释更多关于过期如何工作的信息。
【参考方案1】:
我猜它只返回 COLD 项目
这个命令对我有用
lru_crawler metadump $slabid
【讨论】:
标记这样的问题,您喜欢将其作为书签贡献,并查看其他一些 SO 问题。一旦你习惯了***并且获得了更多的分数,你就不需要滥用cmets的答案了:)以上是关于Memcached“stats cachedump”命令未显示所有键的主要内容,如果未能解决你的问题,请参考以下文章
领会Memcached高可用群集(Memcached主主复制+Keepalived)
Memcached源代码分析 - Memcached源代码分析之消息回应