首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带过去时间戳的EXPIREAT命令中的Redis密钥过期事件

带过去时间戳的EXPIREAT命令中的Redis密钥过期事件
EN

Stack Overflow用户
提问于 2018-03-30 01:28:39
回答 1查看 881关注 0票数 0

根据redis医生的说法:

EXPIREAT的效果和语义与过期相同,但它没有指定表示TTL (生存时间)的秒数,而是使用一个绝对Unix时间戳(自1970年1月1日起的秒)。过去的时间戳将立即删除密钥。

在设置过去的时间戳时,我得到的行为与每个文档完全相同,除非没有引发密钥过期事件。

代码语言:javascript
复制
redis> SET mykey "Hello"
"OK"
redis> EXISTS mykey
(integer) 1
redis> EXPIREAT mykey 1293840000
(integer) 1
redis> EXISTS mykey
(integer) 0

当我在EXPIREAT命令中设置将来的时间戳时,它会抛出密钥过期事件。

因此,在通过EXPIREAT设置过去的时间戳时,不支持获取密钥过期事件吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-30 02:09:55

在你的情况下,没有过期事件。

那么,在通过EXPIREAT设置过去的时间戳时,不支持获取密钥过期事件吗?

事实上,这取决于。

如果您的Redis正在加载数据或它是一个从服务器,Redis将设置给定密钥的过期,并发布过期事件。否则,Redis将删除或取消对给定键的链接,并发布del事件。

所以,在你的例子中,你会得到一个del事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49567257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档