redis的内存淘汰策略和键删除策略

本文解析了Redis 5.0前后8种内存淘汰策略(volatile-lru、volatile-ttl、volatile-random、volatile-lfu等)和定期+惰性删除的键删除策略。了解如何根据需求选择合适的淘汰策略,以及它们对内存和CPU性能的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

11. redis的内存淘汰策略

redis5.0前提供了6种,redis5.0之后提供了8种

策略概述
volatile-lru从已设置过期时间的数据中挑选最近最少使用的数据淘汰,没有设置过期时间的数据不会被淘汰
volatile-ttl从已设置过期时间的数据中挑选将要过期的数据淘汰,ttl值越大越优先被淘汰
volatile-random从已设置过期时间的数据中任意选择数据淘汰
volatile-lfu从已设置过期时间的数据中挑选使用频率最低的数据淘汰
allkeys-lru面向所有的key,挑选最近最少使用的数据淘汰
allkeys-lfu面向所有的key,挑选使用频率最低的数据淘汰
allkeys-random面向所有的key,任意选择数据淘汰
no-enviction(驱逐)禁止驱逐数据,默认策略。当内存不足又要插入新数据时,新写入操作报错

12 redis的键删除策略

redis默认采用定期+惰性删除策略

  • 定时删除
在设置键的过期时间的同时,设置一个定时器,键过期,定时间马上把该键删除(对内存友好,因为及时清除过期键,节省空间;对CPU不友好,如果过期键很多,删除操作会消耗过多资源)
  • 惰性删除
key过期后不做处理,仍留在内存中。当有命令操作这个key时,检查这个key是否过期,过期则删除,否则返回key对应数据(对CPU友好,只有读取key时发现其过期才删除;对内存不友好,过期键占用内存空间)
  • 定期删除
redis数据库默认每隔100ms随机抽取一些设置了过期时间的key进行检测,过期则删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值