Redis过期策略

285 阅读1分钟

1、定期删除

redis默认是间隔100ms随机抽取设置了过期时间的key,检查是否过期,如果过期了,就直接删除,如果redis设置了100w个key都设置了过期时间。间隔100ms检查100w个key,redis性能会下降很多。所以100ms是随机抽取一些key来检查和删除。

2、惰性删除

如果随机删除没有被删掉的,就进行惰性删除。在获取某个key的时候检查一下这个key是否过期,如果过期就删除,不会返回任何东西。

问题:如果key过期了,并且key没有被用过。导致大量的过期key堆积在内存中。如何处理? 答:执行内存淘汰,如果内存占用过多时候,就会进行内存淘汰。

3、内存淘汰策略

  • a、最近最少使用:移除最近使用最少的key。最常用的策略
  • b、随机淘汰:随机移除某个key。
  • c、移除设置了过期时间的最近最少使用的key。
  • d、随机移除设置了过期时间的key。
  • e、移除设置了过期时间并且最快要过期的key。