Redis 在 hSet 键上设置 TTL
Redis setting TTL on hSet Keys
我在 Redis 缓存方面走投无路。我想在启动密钥时设置 TTL。密钥将由 hSet($hash, $key, $data)
设置
expire($key, '3600')
好像不行。是否有 hExpire() 方法?
您需要将 TTL 放在 $hash
本身,因为您不能使散列的单个键过期。
解释:
Redis 仅支持 KEY 级别的过期。它不支持任何数据结构的内部元素过期,更不用说哈希了。
答案:
- 没有。 Redis中没有
hExpire
method/command
- 您正在尝试使哈希中的内部元素过期。这在 Redis 中是不可能的。
更新:
您可以使整个数据结构过期(a.k.a。一个键)。
使密钥过期的命令之一是EXPIRE key seconds
。
假设你使用的是phpredis,你的方法调用可以是setTimeout($hash, 3600)
.
你可以试试TairHash,它是一个redis模块,类似于redis hash,但是你可以为字段设置expire和version:https://github.com/alibaba/TairHash
我在 Redis 缓存方面走投无路。我想在启动密钥时设置 TTL。密钥将由 hSet($hash, $key, $data)
设置expire($key, '3600')
好像不行。是否有 hExpire() 方法?
您需要将 TTL 放在 $hash
本身,因为您不能使散列的单个键过期。
解释:
Redis 仅支持 KEY 级别的过期。它不支持任何数据结构的内部元素过期,更不用说哈希了。
答案:
- 没有。 Redis中没有
hExpire
method/command - 您正在尝试使哈希中的内部元素过期。这在 Redis 中是不可能的。
更新:
您可以使整个数据结构过期(a.k.a。一个键)。
使密钥过期的命令之一是EXPIRE key seconds
。
假设你使用的是phpredis,你的方法调用可以是setTimeout($hash, 3600)
.
你可以试试TairHash,它是一个redis模块,类似于redis hash,但是你可以为字段设置expire和version:https://github.com/alibaba/TairHash