程序员

redis键过期删除策略

2020-12-19  本文已影响0人  honehou

设置键过期时间的命令

保存键的过期时间

在redisDb中,用一个名为expire的字典保存了所有键的过期时间,称它为过期字典。

过期键的判定

过期键删除策略

定时删除

设置键过期时间的同时,设置一个定时器在过期时间来临时删除键

惰性删除

放任过期键不管,每次获取键时都得检查是否过期,过期则删除,未过期则返回值

定期删除

每隔一段时间,对数据库检查删除过期键,而删除多少,检查多少个数据库由算法决定。定期删除实际上是上面两种算法的折中。

redis的删除策略,惰性删除和定期删除的结合

惰性删除的实现

所有读写数据库的redis命令执行前,都会调用expireIfNeeded函数来做检查,如果输入键未过期则不做处理,如果过期则expireIfNeeded函数将它删除

定期删除的实现

周期性调用activeExpireCycle函数,分多次遍历服务器中的各个数据库,从数据库字典中随机检查一部分键的过期时间,并且删除其中的过期键

过期键对RDB,AOF,复制的影响

RDB

上一篇下一篇

猜你喜欢

热点阅读