版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/soulmate_P/article/details/81136054
如果没有设置有效期,即使内存用完,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机制。
---------------------
作者:soulmate_P
来源:CSDN
原文:https://blog.csdn.net/soulmate_p/article/details/81136054
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/Jeely/p/10785034.html

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

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

    最近在对项目中redis缓存的过期时间进行设置的时候,忽然想到如果没有设置expire,缓存是否永不过期. 如果没有设置有效期,即使内存用完,redis 自动回收机制也是看设置了有效期的,不会动没有设 ...

  2. redis设置expire以及删除机制

    版权声明:转载请标注地址: https://blog.csdn.net/soulmate_P/article/details/81136054 </div><link rel=&qu ...

  3. 在Redis中设置了过期时间的Key,需要注意哪些问题?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:千山qianshan juejin.im/post/5d6b ...

  4. 在 Redis 中设置了过期时间的 Key,需要注意哪些问题?

    熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过期时间需要注意的事项 1. DEL/SET/GETSET等 ...

  5. 【干货】在Redis中设置了过期时间的Key怎么办?

    熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过期时间需要注意的事项 1. DEL/SET/GETSET等 ...

  6. redis查看key的过期时间_面试官:你在Redis中设置过带过期时间的Key吗?

    点击上方小伟后端笔记关注公众号 每天阅读Java干货文章 熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过 ...

  7. redis lua 设置过期_详解 Redis 内存管理机制和实现

    Redis是一个基于内存的键值数据库,其内存管理是非常重要的.本文内存管理的内容包括:过期键的懒性删除和过期删除以及内存溢出控制策略. 最大内存限制 Redis使用 maxmemory 参数限制最大可 ...

  8. 在Redis中设置了过期时间的Key注意事项

    作者:千山qianshan juejin.im/post/5d6bda096fb9a06acc009dc8 熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的 ...

  9. redis list设置过期时间_面试官:你在Redis中设置过带过期时间的Key吗?

    点击上方小伟后端笔记关注公众号 每天阅读Java干货文章 熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过 ...

最新文章

  1. linux终端中运行网银盾,Linux下使用Virtualbox安装 Windows 7 操作网银攻略
  2. SQL2K数据库开发二之查看和修改Sample数据库
  3. Cpp 对象模型探索 / 虚函数表和虚函数表指针的创建时机
  4. Andorid ListView使用技巧
  5. linux将变量保存生成txt,linux-将输出命令保存在变量中并写入for循环
  6. linux 怎么设置静态ip,如何在Linux中设置静态IP地址和配置网络
  7. winform 线程监听两个目录下的文件_vb.net 利用.net自带的GZipStream压缩或者解压文件的代码,不需要任何第三方控件...
  8. 去月球“你知道戴维会变身成哪种动物吗?”
  9. 地理住宅区的特点_高三地理复习专题讲解:民居特点与自然环境的关系
  10. 一个人知道自己为什么而活,他就可以忍受生活加诸他的一切苦难
  11. 什么app可以绘制路线图_为什么大多数路线图都会不可避免地带来糟糕的结果
  12. 阿拉伯数字转人民币大写
  13. 基于微信小说电子书小程序系统设计与实现 开题报告
  14. Java面试题大全带答案110道(持续更新)
  15. 如何解决Excel文档已损坏呢?
  16. python 遍历文件夹下所有图片
  17. 第一章:2030.5、CSIP、Rule21简介 and 本项目内容介绍
  18. Android强行进阶:为何大厂APP如微信、支付宝、淘宝、手Q等只适配了armeabi-v7a/armeabi?
  19. Android开发是简单的「能写应用就行」吗?复习指南
  20. LUNA 黑天鹅事件:Terra CEO关于项目应急方案的社区AMA

热门文章

  1. list在c语言中的作用,在C语言中大略实现VC++中的LISTARRAY功能方法(一)
  2. mysql慢查询call_慢查询日志 - Azure Database for MySQL | Microsoft Docs
  3. 小学计算机课的评语,小学信息技术评课稿
  4. Spring mvc 组件
  5. python 装饰器应用
  6. linux /etc/passwd
  7. java character类
  8. 利用vSAN Performance Monitor可视化监控vSAN性能指标
  9. Maven学习总结(46)——Maven跳过单元测试的两种方法及其区别(-Dmaven.test.skip=true与-DskipTests)
  10. android 系统内测版更新,Flyme Android 10首个内测版已推送,今天你更新了吗?