Redis 在 hSet 键上设置 TTL

Redis setting TTL on hSet Keys

我在 Redis 缓存方面走投无路。我想在启动密钥时设置 TTL。密钥将由 hSet($hash, $key, $data)

设置
expire($key, '3600')

好像不行。是否有 hExpire() 方法?

您需要将 TTL 放在 $hash 本身,因为您不能使散列的单个键过期。

解释:

Redis 仅支持 KEY 级别的过期。它不支持任何数据结构的内部元素过期,更不用说哈希了。

答案:

  1. 没有。 Redis中没有hExpiremethod/command
  2. 您正在尝试使哈希中的内部元素过期。这在 Redis 中是不可能的。

更新:

您可以使整个数据结构过期(a.k.a。一个键)。

使密钥过期的命令之一是EXPIRE key seconds

假设你使用的是phpredis,你的方法调用可以是setTimeout($hash, 3600).

你可以试试TairHash,它是一个redis模块,类似于redis hash,但是你可以为字段设置expire和version:https://github.com/alibaba/TairHash