2015-10-05 55 views
0

设置了过期的密钥在到期时间后没有被清除。例如,reds-cli在到期时间后,redis密钥没有被删除

> set hi bye 
>expire hi 10 
>ttl hi #=> 9 
#(after 10 seconds) 
>ttl hi #=> 0 
>get hi #=> bye 

redis version是2.8.4。这是一个具有单个从站的标记设置中的主节点。持久性已关闭。请帮助我调试此问题。

+0

'ttl key => 0'表示密钥仍然存在。稍后检查时会发生什么?另外,“pttl hi”显示了什么? – raina77ow

+0

即使现在ttl值仍然为0。而pttl的价值也是0. – deepak

+0

我无法重现它,它看起来像一个非常基本的场景。你可以在这里查看它,看看它也不会重现http://try.redis.io/最好尝试重新安装你的redis –

回答

0

如果在redis中有大数据量的数据,当从节点与主节点同步时可能会出现问题,这可能会导致从站中这些数据的TTL不会同步,从而使从站中的数据节点不会被删除。 可以使用脚本删除主节点中的特定数据,从节点将删除那些在主节点中找不到密钥的数据。