Redis对于过期键的清除策略有哪些

发布时间:2021-11-24 17:45:58 作者:iii
来源:亿速云 阅读:142

本篇内容主要讲解“Redis对于过期键的清除策略有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Redis对于过期键的清除策略有哪些”吧!

Pre

Redis-17Redis内存回收策略

Redis Key的超时设置处理

expire key seconds

单位是秒。返回1成功,0表示key已经设置过过期时间或者不存在。 如果想消除超时则使用persist key。如果希望采用绝对超时,则使用expireat命令。

ttl key

返回设置过过期时间的key的剩余过期秒数 -1表示没有设置过过期时间,对于不存在的key,返回-2。

pexpire key 毫秒数

设置生命周期。

pttl  key

以毫秒返回生命周期。

被动删除

当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key.

举个例子, set 一个 过期时间为 600s的 key , 当 到了 600s后,redis 并不会执行删除, 为了性能,redis 会在你下次访问的时候 去删除 。

这样的话,我如果永远不访问,那不歇菜了么? 不要着急,Redis还有主动删除 。

主动删除

由于惰性删除策略无法保证冷数据被及时删掉,所以Redis会定期主动淘汰一批已过期的key。

说白了,这就是定时任务干的活,防止有些key 一直占用内存。

当REDIS运行在主从模式时,只有主结点才会执行被动和主动这两种过期删除策略,然后把删除操作”del key”同步到从结点.

当前已用内存超过maxmemory限定时,触发主动清理策略

第三种策略的情况: 当前已用内存超过maxmemory限定时,会触发主动清理策略.

我们需要根据自身业务类型,选好maxmemory-policy(最大内存淘汰策略),设置好过期时间。如果不设置最大内存,当 Redis 内存超出物理内存限制时,内存的数据会开始和磁盘产生频繁的交换 (swap)会让 Redis 的性能急剧下降。

默认策略是volatile-lru,即超过最大内存后,在过期键中使用lru算法进行key的剔除,保证不过期数据不被删除,但是可能会出现OOM问题。

其他策略如下:

记住: volatile 开头的策略,只清理过期的key , 而all开头的策略则不管你过不过期,都会清理。

如果clien永远都不再get那条key呢?

redis会在Master的后台,每秒10次的执行如下操作:

随机选取100个key校验是否过期,如果有25个以上的key过期了,立刻额外随机选取下100个key(不计算在10次之内)。可见,如果过期的key不多,它最多每秒回收200条左右,如果有超过25%的key过期了,它就会做得更多。

到此,相信大家对“Redis对于过期键的清除策略有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. Redis(五):关于过期键(1)过期键的设置、获取和删除过
  2. Redis 过期键的设置、获取和删除过期时间

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

redis

上一篇:vue中怎么使用vue-cropper裁剪图片

下一篇:将JavaDoc注释生成API文档的操作是怎样的

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》