redis深入学习-16—redis的过期策略

当Redis内存达到上限时,其性能会显著下降。为解决这一问题,Redis提供了多种maxmemory-policy策略,如noeviction(默认,不淘汰任何数据)、volatile-lru(淘汰有过期时间且使用最少的key)、volatile-ttl(淘汰剩余生存时间短的key)、volatile-random(随机淘汰有过期时间的key)、allkeys-lru(淘汰使用最少的key)和allkeys-random(随机淘汰key)。选择策略应根据Redis的使用场景,如仅作缓存则推荐allkeys-xxx,兼顾缓存和数据库则选volatile-xxx。

redis内存超出物理限制时,那么内存中的数据会和磁盘产生频繁的交换,这种情况会导致redis的性能严重下降,甚至不可用。所以redis提供了几种策略来让用户决定redis内存写满时,如何保证redis继续可用。策略配置属性:maxmemory-policy。

1. noeviction:永不过期策略,默认的淘汰策略。支持读,除了 del 操作,其它写命令不支持。这样redis内存写满后,基本上redis不再可用。
2. volatile-lru:淘汰对象是设置了过期时间的key,最少使用的key被优先淘汰。
3. volatile-ttl: 淘汰对象是设置了过期时间的key,比较key的剩余寿命ttl的值,ttl越小越优先被淘汰。
4. volatile-random:淘汰对象是设置了过期时间的key,淘汰的是随机选取的key。
5. allkeys-lru:淘汰对象是所有key,最少使用的key被优先淘汰。
6. allkeys-random:淘汰对象是所有key,随机选取key淘汰。

volatile-xxx的key的淘汰对象都是设置了过期时间的key, allkeys-xxx的淘汰对象都是所有key。如果只用redis做缓存,那么过期策略选择allkeys-xxx,如果想用redis做缓存还想做数据库,就选择volatile-xxx。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荆茗Scaler

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值