Redis在hSet键上设置TTL

时间:2018-04-27 15:02:29

标签: caching redis redis-cli

我使用redis缓存处于死路。我想在启动密钥时设置TTL。密钥将由hSet($ hash,$ key,$ data)

设置
uid

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

3 个答案:

答案 0 :(得分:4)

<强>解释

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

<强>答案:

  1. 否。 Redis中没有hExpire方法/命令。
  2. 你正在尝试使哈希中的内部元素过期。这在Redis中是不可能的。
  3. <强>更新

    您可以使整个数据结构过期(例如,密钥)。

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

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

答案 1 :(得分:0)

您需要将TTL放在Map<String, Map<String, Integer>> parametersMap = row .getMap("parameters", TypeToken.of(String.class), TypeTokens.mapOf(String.class, Integer.class)); 本身上,因为您无法使哈希的各个键到期。

答案 2 :(得分:0)

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