http://www.redis.cn/commands/expire.html

附录: Redis 过期时间

Keys的过期时间

通常Redis keys创建时没有设置相关过期时间。他们会一直存在,除非使用显示的命令移除,例如,使用DEL命令。

EXPIRE一类命令能关联到一个有额外内存开销的key。当key执行过期操作时,Redis会确保按照规定时间删除他们。

key的过期时间和永久有效性可以通过EXPIRE和PERSIST命令(或者其他相关命令)来进行更新或者删除过期时间。

过期精度

在 Redis 2.4 及以前版本,过期期时间可能不是十分准确,有0-1秒的误差。

从 Redis 2.6 起,过期时间误差缩小到0-1毫秒。

过期和持久

Keys的过期时间使用Unix时间戳存储(从Redis 2.6开始以毫秒为单位)。这意味着即使Redis实例不可用,时间也是一直在流逝的。

要想过期的工作处理好,计算机必须采用稳定的时间。 如果你将RDB文件在两台时钟不同步的电脑间同步,有趣的事会发生(所有的 keys装载时就会过期)。

即使正在运行的实例也会检查计算机的时钟,例如如果你设置了一个key的有效期是1000秒,然后设置你的计算机时间为未来2000秒,这时key会立即失效,而不是等1000秒之后。

Redis如何淘汰过期的keys

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

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

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

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

  1. 测试随机的20个keys进行相关过期检测。
  2. 删除所有已经过期的keys。
  3. 如果有多于25%的keys过期,重复步奏1.

这是一个平凡的概率算法,基本上的假设是,我们的样本是这个密钥控件,并且我们不断重复过期检测,直到过期的keys的百分百低于25%,这意味着,在任何给定的时刻,最多会清除1/4的过期keys。

在复制AOF文件时如何处理过期

为了获得正确的行为而不牺牲一致性,当一个key过期,DEL将会随着AOF文字一起合成到所有附加的slaves。在master实例中,这种方法是集中的,并且不存在一致性错误的机会。

然而,当slaves连接到master时,不会独立过期keys(会等到master执行DEL命令),他们任然会在数据集里面存在,所以当slave当选为master时淘汰keys会独立执行,然后成为master。

转载于:https://www.cnblogs.com/rocky-AGE-24/p/7069588.html

Redis 过期时间相关推荐

  1. Redis——过期时间/过期回收策略

    既然是缓存,就会涉及过期时间以及过期后清理回收内存的过程:本篇主要讲一下redis的key过期时间相关的命令.注意事项.回收策略: 注意:实际上,redis的内存回收触发有两种情况,上面说的是一种,也 ...

  2. nodejs redis 过期时间_别在为Redis面试而烦恼了?看完暴答【面试管】

    Redis面试官喜欢问的,小伙伴们看完暴答面试官!!!  Redis 是什么?都有哪些使用场景?Redis 是一个使用 C 语言开发的高性能键值对(key-value)的内存数据库,性能优秀,数据在内 ...

  3. Redis过期时间及过期策略

    一.基本命令 Redis中我们可以通过EXPIRE和PEXPIRE来设置键的生存时间(TTL),通过命令,客户端可以经过指定的秒或者毫秒为精度,对数据库中的特定键设置生存时间: 同样,我们可以通过EX ...

  4. redis 失效时间单位是秒还是毫秒_Redis 事务与过期时间详细介绍

    Redis 事务与过期时间详细介绍 一.Redis事务: Redis中支持事务,事务即为当我们需要执行几条命令时,要么这几条命令都不执行,要么都执行: 1.开始事务写入: multi 2.然后写入命令 ...

  5. Redis设置过期时间为当月月底-----自动计算

    今天在新的需求里面,有这么一个要求,要求设置redis过期时间为当月月底,意思是如果一号存进redis,则过期时间为月底:如果29号存进redis,则过期时间同样为月底.我想的就是获取当前时间,算出当 ...

  6. redistemplate.opsforhash设置过期时间_Redis详解(十一)------ 过期删除策略和内存淘汰策略...

    大家好,我是可乐,一个专注原创,乐于分享的程序猿. 本系列教程持续更新,可以微信搜索「 IT可乐 」第一时间阅读.回复<电子书>有我为大家特别筛选的海量免费书籍资料 在介绍这篇文章之前,我 ...

  7. java redis 过期_Redis中的键值过期操作

    1.过期设置 Redis 中设置过期时间主要通过以下四种方式: expire key seconds:设置 key 在 n 秒后过期: pexpire key milliseconds:设置 key ...

  8. Redis 笔记(09)— 过期时间 expire(设置、查询、取消过期时间)

    1. 设置过期时间 Redis 使用 expire 命令设置一个键的过期时间,到时间后 Redis 会自动删除它.expire 命令的使用方法为 expire key seconds 其中 secon ...

  9. Redis 高级特性(1)—— 事务 过期时间 排序

    1. Redis 高级特性 -- 事务 事务概念 Redis 中的事务 (transaction)是一组命令的集合.事务同命令一样是 Redis 的最小执行单位,一个事务中的命令要么都执行,要么都不执 ...

最新文章

  1. windows server 2008设置远程桌面连接最大数量
  2. mysql2014授权设置_SQLServer2014许可证(六)虚拟化中的授权
  3. Java面向对象(一)面向对象简介和初步 了解
  4. react动态改变选中不选中_reactjs – 如何避免使用重新选择来计算派生状态时React重新渲染...
  5. 输入日期java_java怎么格式化输入日期
  6. WPS 国际版 Remove ads
  7. opencv换证件照底色
  8. 搜狗输入法5.0_注意!月活超5亿的搜狗输入法向用户电脑植入病毒
  9. 【Python实例】获取今日零点的datetime
  10. CentOS下MySQL安装失败,报socket '/tmp/mysql.sock错误解决方法
  11. 吾生也有涯,而学也无涯
  12. 6612345免费网页打印浏览器
  13. ThingJS 3D场景层级切换,体验不一样的动感!
  14. SSM中监听器调用service层空指针异常
  15. 论文笔记:Pay More Attention to History: A Context Modeling Strategy for Conversational Text-to-SQL
  16. 怎样更换计算机开机画面,如何给win10电脑更换一个漂亮的开机界面
  17. SimpleDateFormat格式化日期
  18. word空白页删除不掉
  19. 考研数学二(来源于1800和张宇总结)
  20. 正则表达式测试器eRegex (for Mac Win)

热门文章

  1. DIY精简我们的迅雷
  2. CentOS安装DolphinScheduler
  3. python 数字转十六进制_405. 数字转换为十六进制数(Python)
  4. xpdf转换中文pdf时报错字库缺失:Unknown character collection Adobe-GB1
  5. windows10远程桌面连接(同一局域网内)
  6. cartographer_learn_5
  7. Spring注入属性为null
  8. 1062lcd在dxp哪个库_dxp_2004_元件库中的常用元件所在位置
  9. linux线程踩栈,Linux线程栈内存总结
  10. 3D探索——Web 3D哪家强?