Redis 过期键删除策略

Redis中的K-V pairs保存在一个字典中,这个字典叫做键空间。

键的过期时间被放在另外一个字典中,key指向键空间某个对象的指针,value是一个时间戳(long型整数)。

键过期策略有以下三种:

1)定时删除:设置键过期之时,创建一个定时器(timer),当键的过期时间来临时,立即删除这个键。

对内存最友好,最CPU最不友好,影响响应时间和吞吐量。

2)惰性删除:对CPU最友好,对内存最不友好,可能造成内存泄露。

3)定期删除:上面两种方案的折中,每隔一段时间删除。难点是确定策略的时长和频率。

如果删除时长过长或者过于频繁,那么将退化为定时删除;反之,则退化为惰性删除。

目前定期任务是SeverCron,100ms执行一次。

1,3是主动删除,2是被动删除。Redis使用的策略是 惰性删除 + 定期删除。

在主从结构中,从服务器不会删除过期键。主服务器删除一个过期键后,会显式地向从服务器发送一个del命令,从服务器接到del命令之后,才会删除过期键。

2017-12-26阅

1)要知道CPU和内存的好恶

2)折中策略 + 组合策略

你可能感兴趣的:(Redis 过期键删除策略)