背景:
开发环境大家共用redis
集群, 出现设置的redis key
随机丢失
1. 检查key是否设置了过期时间
执行ttl key
发现值是-1,并没有设定过期时间
2. 检查是否有人删除key
,或者flushdb
,flushall
执行info commandstats
cmdstat_XXX: calls=XXX,usec=XXX,usec_per_call=XXX
看出命令执行的次数、命令耗费的 CPU 时间(单位毫秒)、执行每个命令耗费的平均 CPU 时间(单位毫秒)
看看del
,flushdb
,flushall
的次数,可能执行的时候已经有大量的调用,先执行config resetstat
进行重置
3. 检查内存配置,是否超出内存设定被回收
1. info命令查看
evicted_keys
: 因最大内存容量限制而被驱逐(evict)的键数量