这个问题在这里已经有答案了:
redis在hset键上设置ttl(2个答案)
10个月前关门了。
实现上下文
我有一个基于令牌的api实现。高级逻辑是由api发出的令牌,在随后调用其他api时必须使用此令牌。一个api从db获取大量数据并将其存储在缓存中(我在这里使用redis)。缓存的密钥为session:functionality,字段(hashkey)作为令牌,json格式的值作为从db获取的数据。在对api的后续调用中,令牌在网关级别进行验证,api检查数据是否已经存在于redis中。
在这里,它查询redis中的hash,其键为session:functionality & 哈希键作为令牌。如果数据在redis中,api将发送一个快速响应,否则它将从下游系统获取数据。
所以在redis的hash中,
问题
现在我的问题是,是否可以在haskkey级别为每个令牌设置一个唯一的超时,因为基础数据可能会更改,我希望在这个级别保持5分钟的超时。
我使用的是spring-boot-jedis,所以如果你能用这个框架发布设置超时的具体方法,那就太好了。
1条答案
按热度按时间wooyq4lh1#
不。
嗨,这是不可能的,要么为该特定字段使用不同的顶级键,要么与该字段一起存储另一个具有过期时间的字段,获取这两个字段,然后让应用程序根据当前时间了解它是否仍然有效。
来自安提雷斯-redis的作者https://github.com/antirez/redis/issues/167#issuecomment-2559040