是的,Redis 可以根据消息的存储时长(TTL, Time-To-Live)自动删除键。您可以通过设置键的过期时间来实现这一点。以下是一些相关的命令和使用示例:
设置过期时间的命令
-
EXPIRE:为键设置过期时间(以秒为单位)。
EXPIRE key seconds
-
PEXPIRE:为键设置过期时间(以毫秒为单位)。
PEXPIRE key milliseconds
-
EXPIREAT:为键设置一个具体的过期时间点(以 UNIX 时间戳表示,秒为单位)。
EXPIREAT key timestamp
-
PEXPIREAT:为键设置一个具体的过期时间点(以 UNIX 时间戳表示,毫秒为单位)。
PEXPIREAT key timestamp
-
SET:直接在设置键值的同时设置过期时间。
SET key value EX seconds
查询过期时间的命令
-
TTL:查看键的剩余生存时间(以秒为单位)。
TTL key
-
PTTL:查看键的剩余生存时间(以毫秒为单位)。
PTTL key
删除过期时间的命令
- PERSIST:移除键的过期时间,使其永久存在。
PERSIST key
示例
以下是一些示例,展示如何使用这些命令来设置和管理键的过期时间:
示例 1:使用 EXPIRE 设置过期时间
SET myKey "myValue"
EXPIRE myKey 60 # 设置 myKey 在 60 秒后过期
示例 2:在设置键值时指定过期时间
SET myKey "myValue" EX 60 # 设置 myKey 在 60 秒后过期
示例 3:检查键的剩余生存时间
TTL myKey # 查看 myKey 的剩余生存时间(秒)
PTTL myKey # 查看 myKey 的剩余生存时间(毫秒)
示例 4:移除键的过期时间
PERSIST myKey # 移除 myKey 的过期时间
示例 5:使用 EXPIREAT 设置具体的过期时间点
# 假设当前 UNIX 时间戳为 1622547800
EXPIREAT myKey 1622547900 # 设置 myKey 在 1622547900 时间点过期
过期键的自动删除
Redis 会自动删除过期的键,删除的方式包括以下两种:
- 惰性删除:当客户端访问一个键时,如果该键已经过期,Redis 会立即删除它并返回空值。
- 定期删除:Redis 会周期性地扫描一部分键,主动删除其中已经过期的键。
通过以上方法,您可以轻松地管理 Redis 中键的生存时间,使其在合适的时间点自动删除,从而有效地管理缓存和资源。
标签:存储,设置,示例,过期,Redis,时间,key,myKey From: https://www.cnblogs.com/gongchengship/p/18284566