首页 » PHP教程 » phpredis设置有用期技巧_Redis设置key有效期问题彻底理解系列

phpredis设置有用期技巧_Redis设置key有效期问题彻底理解系列

访客 2024-11-12 0

扫一扫用手机浏览

文章目录 [+]

起始版本:1.0.0

韶光繁芜度:O(1)

phpredis设置有用期技巧_Redis设置key有效期问题彻底理解系列

返回值:1 如果成功设置过期韶光;0 如果key不存在或者不能设置过期韶光。

phpredis设置有用期技巧_Redis设置key有效期问题彻底理解系列
(图片来自网络侵删)

为给定 key设置生存韶光,当 key过期时(生存韶光为 0),它会被自动删除。

1.过期韶光随着key走,与值无关

在Redis中,带有过期韶光的key被称为『易失落的』(volatile)。
过期韶光可以通过利用 DEL命令来删除全体key来移除,或者被 SET和 GETSET命令覆写(overwrite),这意味着,如果一个命令只是修正(alter)一个带过期韶光的 key的值而不是用一个新的 key值来代替(replace)它的话,那么过期韶光不会被改变。
比如说,对一个 key实行 INCR命令,对一个列表进行 LPUSH命令,或者对一个哈希表实行 HSET命令,这类操作都不会修正 key本身的过期韶光。

2.设置永久有效期

利用PERSIST命令可以打消超时,使其变成一个永久的key。

3.rename命令对有效期影响

如果key被RENAME命令修正,干系的超时时间会转移到新key上面。

如果key被RENAME命令修正,比如原来就存在Key_A,然后调用RENAME Key_B Key_A命令,这时不管原来Key_A是永久的还是设置为超时的,都会由Key_B的有效期状态覆盖。

4.刷新过期韶光

对已经有过期韶光的key实行EXPIRE操作,将会更新它的过期韶光。

5.过期精度

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

从 Redis 2.6 起,过期韶光偏差缩小到0-1毫秒。

6.外界成分对过期韶光影响

Keys的过期韶光利用Unix韶光戳存储(从Redis 2.6开始以毫秒为单位)。
这意味着纵然Redis实例不可用,韶光也是一贯在流逝的。

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

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

7.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。

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

为了得到精确的行为而不捐躯同等性,当一个key过期,DEL将会随着AOF笔墨一起合成到所有附加的slaves。
在master实例中,这种方法是集中的,并且不存在同等性缺点的机会。

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

标签:

相关文章

介绍白点控制之路,从原理到方法

白点,作为生活中常见的现象,无处不在。对于如何控制白点,许多人却感到困惑。本文将从原理出发,探讨白点的控制方法,并结合实际案例,为...

PHP教程 2025-01-03 阅读1 评论0

介绍直播王者,如何开启你的电竞直播之旅

随着电竞产业的蓬勃发展,越来越多的年轻人投身于电竞直播行业。王者荣耀作为一款备受欢迎的MOBA手游,吸引了大量玩家和观众。如何开启...

PHP教程 2025-01-03 阅读1 评论0