Spring Data Redis键过期

4
在Spring Data Redis中,我们有两个变量。
RedisTemplate<Key, Value> redisTemplate;

HashOperations<Key, HashKey, HashValue> hashOperations;

RedisTemplate中有一个expireAt(String key, Date date)方法。如果我想为特定的哈希键设置到期时间,我可以使用这个方法吗?或者这只在键级别上起作用并且会使该键内的所有条目都过期?

2个回答

6
如果有帮助的话,我正在使用redisTemplate.expireAt(String Key, Date date)方法来实现这个目的。它对我来说有效。

0
在Redis(以及Spring Data Redis)中,您只能在整个键上使用 EXPIRE (这就是 expireAt(String key,Date date)使用的内容),而不能使某些字段(条目)过期 hash 但不是其他人。您只能使整个 hash 过期。

这意味着,如果您想使一些 hash 字段过期,但不是其他字段,则需要找到解决方法。我之前使用过的一个方法是拥有第二个与我的 hash 具有相同字段的 hash (或 zset ),但每个字段的值(如果使用 zset 则为分数)是字段应该过期的时间戳。这里的缺点是您需要编写一些代码来检查字段何时过期,然后将其删除。

另一个选择是仅使用常规的 string 键而不是 hash 。但这带有自己的缺点(例如,如果您需要 HLEN ,则需要使用 SCAN 在代码中实现它)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接