Redis学习总结---相关策略 3

1、redis内存淘汰策略

  • volatile-lru 从已设置过期时间的数据集中挑选最近最少使⽤的数据淘汰
  • volatile-random 从已设置过期时间的数据集中任意选择数据淘汰
  • allkeys-lru 当内存不⾜以容纳新写⼊数据时,在键空间中,移除最近最少使⽤的 key,常用
  • allkeys-random 从数据集中任意选择数据淘汰
  • volatile-ttl 从已设置过期时间的数据集中挑选将要过期的数据淘汰
  • no-eviction 禁止驱逐数据,也就是说当内存不⾜以容纳新写⼊数据时,新写⼊操作会报错 OOM。

4.0 版本后增加两种:

1、volatile-lfu:从已设置过期时间的数据集中挑选最不经常使用的数据淘汰算法

2、allkeys-lfu:当内存不足以容纳新写入数据时,在键空间中,移除最不经常使用的key

  • volatile-lfu 从已设置过期时间的数据集中挑选最不经常使⽤的数据淘汰
  • allkeys-lfu 当内存不⾜以容纳新写⼊数据时,在键空间中,移除最不经常使⽤的 key。

   常见选择: allkeys-lru 用于应用对缓存的访问符合幂律分布,也就是存在相对热点数据,或者不太清楚应用的缓存访问分 布状况,可以选择 allkeys-lru 策略。 allkeys-random 应用对于缓存 key 的访问概率相等,则可以使用这个策略。 volatile-ttl 策略使得可以向 Redis 提示哪些 key 更适合被移除。

2、Redis删除策略

  1. 删除策略的目的:redis 开辟了一个空间用来存放值的地址和其过期时间,删除策略是为了在内存和 cpu 之间找到一个平衡,过 期数据通常是在 cpu 闲暇之余被删除的。
  2. Redis 中的过期数据删除情况:redis 服务器当中有很多的操作需要被执行,执行会导致 CPU 的工作大大的增 加,当内存的空间还足够时,已被删除的数据的内存空间并未直接释放,而是对客户端的指令先执行
  3. redis 中的数据删除策略包括定时删除、惰性删除、定期删除。
     内存占用    CPU 占用特征
定时删除节约内存,无占用

不分时段占用 CPU 资源,频度高

时间换空间,适用于小内存,强 CPU
惰性删除内存占用严重 延时执行,CPU 利用率高空间换时间,适用于大内存,弱 CPU
定期删除内存定期随机清理

每秒花费固定的 CPU 资源,维护内存

随机抽查,重点抽查

     

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值