如果redis没有设置expire,他是否默认永不过期?

news/2025/2/26 4:46:47

如果没有设置有效期,即使内存用完,redis 自动回收机制也是看设置了有效期的,不会动没有设定有效期的,如果清理后内存还是满的,就不再接受写操作。


Redis无论有没有设置expire,他都会遵循redis的配置好的删除机制,在配置文件里设置:
redis最大内存不足"时,数据清除策略,默认为"volatile-lru"。
volatile-lru  ->"过期集合"中的数据采取LRU(近期最少使用)算法.如果对key使用"expire"指令指定了过期时间,那么
此key将会被添加到"过期集合"中。将已经过期/LRU的数据优先移除.如果"过期集合"中全部移除仍不能满足内存需求,OOM.
allkeys-lru ->对所有的数据,采用LRU算法
volatile-random ->"过期集合"中的数据采取"随即选取"算法,并移除选中的K-V,直到"内存足够"为止. 如果如果"过期集合"
中全部移除全部移除仍不能满足,OOM
allkeys-random ->对所有的数据,采取"随机选取"算法,并移除选中的K-V,直到"内存足够"为止
volatile-ttl ->"过期集合"中的数据采取TTL算法(最小存活时间),移除即将过期的数据.
noeviction ->不做任何干扰操作,直接返回OOM异常

另外,如果数据的过期不会对"应用系统"带来异常,且系统中write操作比较密集,建议采取"allkeys-lru"。

由以上可以看出,对没设置expire的数据,产生影响的是allkeys-lru机制,allkeys-random。

所以redis没设置expire的数据是否会删除,是由你自己选择的删除机制决定的。

在Redis服务器占用内存达到maxmemory最大的情况下,当再想增加内存占用时,会按maxmemory-policy删除机制将老的数据删除。这里简单说一下volatile-lru,Redis会按LRU算法删除设置了过期时间但还没有过期的key,而对于没有设置过期时间的key,Redis是永远保留的。当然,如果你不想删除没有过期的key,那可以使用noeviction机制。


http://www.niftyadmin.cn/n/2427300.html

相关文章

三层架构(3-tier application)

三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。  …

在线教育发展更加规范,前途无量

2020年已经过去,在这个特殊的一年里,经过疫情刺激,学生得到了很好的市场教育,各大在线教育平台高速发展,在线教育行业迎来新一轮的疯狂增长。 艾媒咨询数据显示,2020年在线教育市场规模达4858亿元&#xf…

对现在知识付费现象的思考

近几年来,“知识付费”这个概念红遍大江南北。仿佛是一夜之间,各种知识付费内容兴起,这一方面是解决了年轻人想利用碎片化时间学习的需求;更深层次的原因,其实是从一定程度上缓解了很多城市白领想要提高自己核心竞争力…

发展在线教育 服务人才培养

在线教育在新冠肺炎疫情下得以快速发展,高校要突出重点着力通过融合线上线下教学、依托大数据构建教学质量保障机制、建设高水平在线教育教师队伍以及形成新型高效教学管理和服务体系,共同打造高水平在线教育,服务人才培养根本任务。 突如其来…

后疫情时代,知识付费行业的困局与机遇

知识付费”近年来在我国呈现爆红现象,随之而来的更是各类知识付费平台的激增与不断涌现。但知识付费本身并不是一个全新的概念,知识付费源于认知盈余,源于人们渴望分享知识的心理,是人们将其自身知识转化为商品或服务的重要表现形…

一文读懂所有锁

一文读懂所有锁 1. 目录框架 2. 思维框架

后端研发升级流程总结

需求会接需求 1.1 需求的价值和意义 1.2 需求的产品层面,用户体验层面,公司的核心价值观,战略 1.3 需求的实现的可行性 1.4 需求实现依赖的资源和业务方 技术方案评估 2.1 技术方案 方案 性能; 2.2 实现复杂度; 2.3 维…

文件的打开方式

今天突然翻书随意翻到一段关于“文件的打开方式”的文章,随意整理下来与大家分享。 文本文件也叫做ASCII码文件,与以‘文本方式’打开文件不是同一个概念!文本文件存储的是ASSCII码字符,即存储在磁盘上只占用二进制的0x20--0x7e。…