在 Redis 中,当一个键(key)的过期时间变成 -2 时,表示该键已被删除。Redis 中的过期时间(TTL)有以下几种状态:

正整数: 表示键的剩余过期时间,单位是秒。
-1: 表示键没有设置过期时间,永不过期。
-2: 表示键不存在或已过期被删除。

所以,当你使用 TTL 命令查看键的剩余过期时间时,如果返回的是 -2,说明这个键已经不存在或者已经过期被删除。

以下是一个示例,演示了如何在 Redis 中设置键的过期时间和查看 TTL:

# 设置键 "example_key" 的值
SET example_key "Hello, Redis"

# 设置键 "example_key" 的过期时间为 60 秒
EXPIRE example_key 60

# 查看键 "example_key" 的剩余过期时间
TTL example_key

在上述例子中,EXPIRE 命令设置了键 “example_key” 的过期时间为 60 秒。使用 TTL 命令可以查看键的剩余过期时间。如果键存在且未过期,TTL 返回的是正整数,表示剩余过期时间;如果键不存在或已过期,TTL 返回的是 -2。

检查代码中是否存在主动删除键的操作,或者其他导致键过期的操作。如果没有特殊操作,可能是因为 Redis 配置中启用了持久化机制(RDB 或 AOF),并且 Redis 将过期键删除后保存快照或写入日志,导致键在数据持久化之后消失。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部