我们知道 Redis 缓存满了之后能通过淘汰策略删除数据腾出空间给新数据。
淘汰策略如下所示:
redis内存淘汰
设置过期时间的 key
volatile-ttl、volatile-random、volatile-lru、volatile-lfu
这四种策略淘汰的数据范围是设置了过期时间的数据。
所有的 key
allkeys-lru、allkeys-random、allkeys-lfu
这三种淘汰策略无论这些键值对是否设置了过期时间,当内存不足都会进行淘汰。
这就意味着,即使它的过期时间还没到,也会被删除。当然,如果已经过了过期时间,即使没有被淘汰策略选中,也会被删除。
volatile-ttl 和 volatile-randon
很简单,重点在于 volatile-lru 和 volatile-lfu
,他们涉及到 LRU 算法 和 LFU 算法。
今天带大家一起搞定 Redis 的 LRU 算法…