Redis 在 hSet Keys 上设置 TTL

问题描述 投票:0回答:4

我在 Redis 缓存方面陷入了死胡同。我想在密钥启动时设置 TTL。键将通过 hSet($hash, $key, $data) 设置

expire($key, '3600')

似乎不起作用。有 hExpire() 方法吗?

caching redis redis-cli
4个回答
21
投票

说明:

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

答案:

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

更新:

您可以使整个数据结构(也称为密钥)过期。

使密钥过期的命令之一是

EXPIRE key seconds

假设您使用的是 phpredis,您的方法调用可以是

setTimeout($hash, 3600)


0
投票

您需要将 TTL 放在

$hash
本身上,因为您不能使哈希的各个键过期。


0
投票

对于 2024 年阅读本文的任何人,正如之前的评论之一中提到的 Redis 在 hSet Keys 上设置 TTL ,评论中链接的拉取请求已被合并。 Redis 现在支持哈希字段级别的过期https://redis.io/docs/latest/commands/?name=hexp


-2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.