我使用redis缓存处于死路。我想在启动密钥时设置TTL。密钥将由hSet($ hash,$ key,$ data)
设置uid
似乎不起作用。有没有hExpire()方法?
答案 0 :(得分:4)
<强>解释强>
Redis仅支持KEY级别的到期。它不支持任何数据结构的内部元素的过期,更不用说散列。
<强>答案:强>
hExpire
方法/命令。<强>更新强>
您可以使整个数据结构过期(例如,密钥)。
要过期密钥的命令之一是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