searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Redis的8种内存淘汰机制

2024-11-28 09:53:18
19
0

一.简介
8种内存淘汰策略:当 Redis 达到最大内存限制时,Redis会确切地使用配置好的最大内存策略指令来执行。相关策略如下:

1.noeviction(默认策略): 不会删除任何数据,拒绝所有写入操作并返回客户端错误消息(error)OOM command not allowed when used memory,此时 Redis 只响应删和读操作;

2.allkeys-lru: 从所有 key 中使用 LRU 算法进行淘汰(LRU 算法:最近最少使用算法);

3.allkeys-lfu: 从所有 key 中使用 LFU 算法进行淘汰(LFU 算法:最不常用算法,根据使用频率计算);

4.volatile-lru: 从设置了过期时间的 key 中使用 LRU 算法进行淘汰;

5.volatile-lfu: 从设置了过期时间的 key 中使用 LFU 算法进行淘汰;

6.allkeys-random: 从所有 key 中随机淘汰数据;

7.volatile-random: 从设置了过期时间的 key 中随机淘汰数据;

8.volatile-ttl: 在设置了过期时间的key中,淘汰过期时间剩余最短的。

 

二.如何选择使用哪种淘汰策略
​ 根据应用程序的访问模式,选择正确的淘汰策略很重要,但是你可以在程序运行时重新配置策略,并使用 Redis 的 info 命令 输出来监控缓存未命中和命中的数量,以调整设置。

1.使用 allkeys-lru 策略场景:

(1)当你期望元素的子集将比其他元素更频繁地被访问时,比如幂律分布,20%的数据占有80%的使用次数;

(2)当你不确定使用哪种策略时。

2.使用 allkeys-random 策略场景:

(1)当你有一个循环访问,其中所有 key 进行会被连续地访问;

(2)当你希望所有 key 的分布比较均匀。

3.使用 volatile-ttl 策略场景:

(1)当你大部分缓存都设有不同的 ttl 值,向 Redis 提供过期候选的提示时。

                        

0条评论
作者已关闭评论
f********n
1文章数
0粉丝数
f********n
1 文章 | 0 粉丝
f********n
1文章数
0粉丝数
f********n
1 文章 | 0 粉丝
原创

Redis的8种内存淘汰机制

2024-11-28 09:53:18
19
0

一.简介
8种内存淘汰策略:当 Redis 达到最大内存限制时,Redis会确切地使用配置好的最大内存策略指令来执行。相关策略如下:

1.noeviction(默认策略): 不会删除任何数据,拒绝所有写入操作并返回客户端错误消息(error)OOM command not allowed when used memory,此时 Redis 只响应删和读操作;

2.allkeys-lru: 从所有 key 中使用 LRU 算法进行淘汰(LRU 算法:最近最少使用算法);

3.allkeys-lfu: 从所有 key 中使用 LFU 算法进行淘汰(LFU 算法:最不常用算法,根据使用频率计算);

4.volatile-lru: 从设置了过期时间的 key 中使用 LRU 算法进行淘汰;

5.volatile-lfu: 从设置了过期时间的 key 中使用 LFU 算法进行淘汰;

6.allkeys-random: 从所有 key 中随机淘汰数据;

7.volatile-random: 从设置了过期时间的 key 中随机淘汰数据;

8.volatile-ttl: 在设置了过期时间的key中,淘汰过期时间剩余最短的。

 

二.如何选择使用哪种淘汰策略
​ 根据应用程序的访问模式,选择正确的淘汰策略很重要,但是你可以在程序运行时重新配置策略,并使用 Redis 的 info 命令 输出来监控缓存未命中和命中的数量,以调整设置。

1.使用 allkeys-lru 策略场景:

(1)当你期望元素的子集将比其他元素更频繁地被访问时,比如幂律分布,20%的数据占有80%的使用次数;

(2)当你不确定使用哪种策略时。

2.使用 allkeys-random 策略场景:

(1)当你有一个循环访问,其中所有 key 进行会被连续地访问;

(2)当你希望所有 key 的分布比较均匀。

3.使用 volatile-ttl 策略场景:

(1)当你大部分缓存都设有不同的 ttl 值,向 Redis 提供过期候选的提示时。

                        

文章来自个人专栏
redis-1
1 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0