在 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 将过期键删除后保存快照或写入日志,导致键在数据持久化之后消失。
发表评论 取消回复