Redis的过期策略都有哪些?(2)
Redis的过期策略都有哪些
内存淘汰策略:当Redis中的内存不够用时,此时在向Redis中添加新的key,那么Redis就会按照某一种规则将内存中的数据删除掉,这种数据的删除规则被称之为内存淘汰策略
Redis支持8种不同策略来选择要删除的key:

- noeviction:不淘汰任何key,但是内存满时不允许写入新数据,默认就是这种策略
- volatile-ttl: 对设置了TTL的key,比较key的剩余TTL值,TTL越小越先被淘汰
- allkeys-random:对全体key ,随机进行淘汰
- volatile-random:对设置了TTL的key ,随机进行淘汰。
- allkeys-lru: 对全体key,基于LRU算法进行淘汰
- volatile-lru: 对设置了TTL的key,基于LRU算法进行淘汰
- allkeys-lfu: 对全体key,基于LFU算法进行淘汰
- volatile-lfu: 对设置了TTL的key,基于LFU算法进行淘汰
3.1. LRU和LFU
LRU(Least Recently Used):最近最少使用,用当前时间减去最后一次访问时间,这个值越大则淘汰优先级越高。
key1是在3s之前访问的, key2是在9s之前访问的,删除的就是key2
LFU(Least Frequently Used):最少频率使用。会统计每个key的访问频率,值越小淘汰优先级越高
key1最近5s访问了4次, key2最近5s访问了9次, 删除的就是key1
3.2. Redis内存淘汰策略-使用建议
如果业务有明显的冷热数据区分,优先使用 allkeys-lru(对全体key,基于LRU算法进行淘汰) 策略。充分利用 LRU 算法的优势,把最近最常访问的数据留在缓存中
如果业务中数据访问频率差别不大,没有明显冷热数据区分,建议使用 allkeys-random(对全体key ,随机进行淘汰),随机选择淘汰。
如果业务中有置顶的需求,可以使用 volatile-lru(对设置了TTL的key,基于LRU算法进行淘汰) 策略,同时置顶数据不设置过期时间,这些数据就一直不被删除,会淘汰其他设置过期时间的数据。
如果业务中有短时高频访问的数据,可以使用 allkeys-lfu 或 volatile-lfu 策略。
4. Redis 的过期策略面试题
面试官:Redis的数据过期策略有哪些 ?
候选人:
在redis中提供了两种数据过期删除策略
相关阅读
-
公司官网制作流程是什么 网站制作步骤流程图
今天小编介绍公司官网制作流程是什么和网站制作步骤流程图方面的知识,接下来IT袋带大家一起了解。 公司官网制作,一般都怎么做?随着互联网的快速发展,公司急需搭建自己的官网,以
-
magento是什么平台 是什么网站
IT袋网为你介绍magento是什么平台方面的知识,Magento是一款专业开源的电子商务平台,采用php进行开发,使用Zend Framework框架。设计得非常灵活,具有模块化架构体系和丰富的功能。
-
如何在香港BGP服务器上进行安全性和隐私性配置?
如果想知道如何在香港BGP服务器上进行安全性和隐私性配置方面的知识,如有不对的地方欢迎指正! 香港BGP服务器是在香港运营的,它是基于BGP多线路的网络拓扑所构建的服务器,主要面向于
-
HSTS怎么设置 HSTS怎么开启
之前我们写的一篇文章给各位新手网站长讲解了 HSTS是什么意思 以及他的作用,下面IT袋小编再来给大家聊一聊HSTS怎么设置开启。 HSTS的优点 HTTP严格传输安全(英文全称:HTTP Strict transport secu


