让你轻松理解并记住Redis中的八种内存淘汰策略

当我们对Redis设置了maxmemory,那么当Redis的内存达到了这个阈值后,就可以对内存中的内容进行淘汰,直到Redis的内存控制在maxmemory内。

一、淘汰策略

ttl:设置了过期时间的key中,剩余时间更少的优先淘汰。

lru:最近最少使用的key,优先被淘汰。

lfu:最近访问频率最少的key,优先被淘汰。

random:随机淘汰内存中内容。

noeviction:无法再写入Redis,不会处理内存中的内容,是默认的淘汰策略。

二、淘汰范围

allkeys-xxx:allkeys开头的是对Redis中的所有key都在淘汰范围内。

volatile-xxx:volatile开头的是对Redis中的设置了超时时间的key列入淘汰范围。

三、设置淘汰策略

Redis的配置文件中maxmemory-policy,就是我们说的,达到最大内存后的淘汰策略。

所以以上的淘汰策略+淘汰范围结合起来,Redis中有以下几类淘汰策略,可以进行设置。

序号淘汰策略意义
1noeviction无法继续写入
2allkeys-lru所有key中,最近最少访问的
3allkeys-lfu所有key中,最近访问频率最少的
4allkeys-random所有key中,随机选择
5volatile-ttl有超时时间的,越早到期的
6volatile-lru有超时时间的,最近最少访问的
7volatile-lfu有超时时间的,最近访问频率最少的
8volatile-random有超时时间的,随机选择

四、使用淘汰策略

如果我们的Redis只是作为缓存使用,那么可以使用allkeys开头的淘汰策略。

如果我们的Redis还有其他用途,做了持久化,那么我们就要使用volatile开头的淘汰策略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值