Redis为何青睐近似LRU算法淘汰数据,舍弃精确LRU?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2156个文字,预计阅读时间需要9分钟。
在Redis+数据缓存满了怎么办?这个问题中,我们知道Redis缓存满了之后,可以通过以下策略释放空间:使用淘汰策略删除数据。淘汰策略包括:+ 设置过期时间的key,当过期后自动删除(volatile-ttl);+ 随机删除key(volatile-random);+ 删除最近最少使用的key(volatile-lru)。
在《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 算法。
本文共计2156个文字,预计阅读时间需要9分钟。
在Redis+数据缓存满了怎么办?这个问题中,我们知道Redis缓存满了之后,可以通过以下策略释放空间:使用淘汰策略删除数据。淘汰策略包括:+ 设置过期时间的key,当过期后自动删除(volatile-ttl);+ 随机删除key(volatile-random);+ 删除最近最少使用的key(volatile-lru)。
在《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 算法。

