Redis为何青睐近似LRU算法淘汰数据,舍弃精确LRU?

2026-05-25 17:341阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2156个文字,预计阅读时间需要9分钟。

Redis为何青睐近似LRU算法淘汰数据,舍弃精确LRU?

在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为何青睐近似LRU算法淘汰数据,舍弃精确LRU?

在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 算法。

阅读全文