redis中,key过期后并不会马上删除,而是同时使用了 3 种策略来删除这些key
1. LRU 介绍
redis在数据达到一定程度之后,就会将数据进行清理,默认采用的是LRU策略
2. 缓存清理配置
在 redis.conf 中也可以进行配置
3. Redis 的LRU算法
redis中使用的是LRU近似算法,也就是对keys进行采样,然后在采样结果中进行数据清理,之所以不使用 LRU 算法,是因为需要消耗大量的额外的内存
Redis 为实现近似 LRU 算法,它给每个 key 增加了一个额外的小字段,这个字段的长度是 24 个bit,也就是最后一次被访问的时间戳。
当 Redis 执行写操作时,发现内存超出 maxmemory,就会执行一次 LRU 淘汰算法。