通过单个命令减少ttl

4bbkushb  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(335)

假设我有redis记录,ttl=1小时。
然后发生了一些事件,我想把这个项目的ttl重置为min(当前ttl,5min)。所以它会把ttl减少到5分钟。如果它还没有降低。
基本的用例是,缓存的失效可能过于频繁,“旧”缓存几乎和新缓存一样好,如果它不早于5分钟。从第一次改变开始。
我知道我可以在一个命令中获取ttl并用第二个命令更新它,但是出于各种原因,我更喜欢用单个命令来设置它。有办法吗?
编辑:将有许多关键点,我需要减少一个命令。所以我想避免redis和客户机库之间的数据往返。

h5qlskok

h5qlskok1#

没有单个命令可以做到这一点,但是您可以将逻辑封装在服务器端lua脚本中,并用单个命令调用它。参考 EVAL 命令获取更多信息。

相关问题