首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis EXPIREAT是否在GET上删除自己?

Redis EXPIREAT是否在GET上删除自己?
EN

Stack Overflow用户
提问于 2020-12-22 22:27:17
回答 1查看 238关注 0票数 0

根据Redis的说法,EXPIREAT具有与过期完全相同的效果和语义。

当通过GET检索密钥时,“过期”会使其自身失效。EXPIREAT文档中没有提到类似的行为,但是EXPIREAT不再在密钥检索时过期是没有意义的。

由于文档的模糊性,我无法判断EXPIREAT在这个场景中的实际行为。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-22 22:47:35

实际上,在检索密钥时终止本身并不是唯一的方法,根据文件

Redis键以两种方式过期:被动方式和主动方式。

  • 当某些客户端试图访问密钥时,密钥就会被动过期,并且发现密钥已超时。
  • 当然,这是不够的,因为有过期的密钥将永远不会再被访问。这些密钥无论如何都应该过期,因此Redis定期在具有过期集的密钥中随机测试几个密钥。所有已过期的密钥都将从密钥空间中删除。

回答你的问题;

在Redis 代码库和注释部分中有一个通用的expire函数,它说。

这是This、PEXPIRE、EXPIREAT和PEXPIREAT的通用命令实现。

“我的乐观猜测”是,这些不同的过期(或*at)命令通过进行转换来调用这个函数,具有不同的参数。因此,EXPIREAT命令也具有与EXPIRE相同的行为,并且密钥以相同的两种方式过期。

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

https://stackoverflow.com/questions/65416602

复制
相关文章

相似问题

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