我在redis缓存的死胡同。我想在启动密钥时设置 TTL。密钥将由 hSet($hash, $key, $data) 设置
expire($key, '3600')
似乎不起作用。有没有 hExpire() 方法?
解释:
Redis 仅在 KEY 级别支持过期。它不支持任何数据结构的内部元素过期,更不用说散列了。
回答:
hExpire
方法/命令。更新:
您可以使整个数据结构(又名密钥)过期。
使密钥过期的命令之一是EXPIRE key seconds
.
假设您使用的是 phpredis,您的方法调用可以是setTimeout($hash, 3600)
.
您需要将 TTL 放在$hash
自身上,因为您不能使散列的单个键过期。
可以试试TairHash,这是一个redis模块,类似于redis hash,但是可以为字段设置expire和version:https ://github.com/alibaba/TairHash