redis 回收策略

redis 回收策略

当内存使用达到了设置的maxmemory 会触发回收策略

lru

最近最少使用页面置换算法(Least Recently Used),也就是首先淘汰最长时间未被使用的

volatile-lru

尝试回收最长时间未被使用(LRU),但仅限于在过期集合的键,使得新添加的数据有空间存放。

allkeys-lru

尝试回收最长时间未被使用(LRU),作用范围是所有的key。

lfu

最近最不常用页面置换算法(Least Frequently Used),也就是淘汰一定时期内被访问次数最少的!

volatile-lfu

尝试回收一定时间内使用次数最少(LRU),但仅限于在过期集合的键,使得新添加的数据有空间存放。

allkeys-lfu

尝试回收一定时间内使用次数最少(LRU),作用范围是所有的key。

其他

volatile-random

从已过期的数据中随机删除

allkeys-random

从所有数据中随机删除

volatile-ttl

从已设置过期时间的数据集中任意挑选数据淘汰

noeviction

不回收
在redis配置文件中配置策略

maxmemory-policy noeviction #配置策略
maxmemory <bytes> #配置内存大小 阈值

主动回收

当一些客户端尝试访问它时,key会被发现并主动的过期

被动回收

Redis keys过期有两种方式:被动和主动方式。

当一些客户端尝试访问它时,key会被发现并主动的过期。

当然,这样是不够的,因为有些过期的keys,永远不会访问他们。 无论如何,这些keys应该过期,所以定时随机测试设置keys的过期时间。所有这些过期的keys将会从密钥空间删除。

具体就是Redis每秒10次做的事情:

测试随机的20个keys进行相关过期检测。
删除所有已经过期的keys。
如果有多于25%的keys过期,重复步奏1.
这是一个平凡的概率算法,基本上的假设是,我们的样本是这个密钥控件,并且我们不断重复过期检测,直到过期的keys的百分百低于25%,这意味着,在任何给定的时刻,最多会清除1/4的过期keys

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值