Redis过期删除策略

2019-09-26  本文已影响0人  毛里求疵

一、知识点

二、考点剖析

// Redis的过期策略是什么?
惰性删除 + 定期删除 

// Redis怎么实现定期删除的呢?
Redis默认每隔100ms随机抽取一些设置了过期时间的key,检查是否过期,如果过期就删除。

// 为什么要随机抽取呢?
假设Redis中有大量的key,并且都设置了过期时间,如果全量检查的话,将会耗费大量的CPU时间,这样有损Redis对外的服务性能。

// 随机抽取会带来什么问题呢?
可能导致已经过期的key还滞留在内存中,占用着内存空间。

// 如何解决随机抽取带来的问题呢?
为了解决这个问题,Redis引入了惰性删除。

// 什么是惰性删除呢?
在获取某个key的时候,Redis会进行检查,如果key设置了过期时间,并且已经过期,则删除这个key,释放内存空间。

// 如果某些key没有触发惰性删除,也就是说经过惰性删除 + 定期删除两轮清理,依旧存在,该如何解决呢?
这种情况,在内存不足的时候,Redis的内存淘汰策略就派上用场了。
上一篇 下一篇

猜你喜欢

热点阅读