【问题标题】:Redis - decrease TTL by single commandRedis - 通过单个命令减少 TTL
【发布时间】:2020-06-21 01:18:47
【问题描述】:

假设我有 TTL = 1 小时的 redis 记录。

然后发生了一些事件,我想将此项目的 TTL 重置为 min(current-TTL, 5min)。所以它会将TTL减少到5分钟。如果它还没有降低。

基本用例是,缓存可能过于频繁地失效,并且“旧”缓存几乎与新缓存一样好,如果它不旧则 5 分钟。从第一次更改开始。

我知道我可以在一个命令中获取 TTL 并用第二个命令对其进行更新,但出于各种原因,我更愿意通过单个命令来设置它。有什么办法吗?

编辑:我需要通过单个命令减少许多键。所以我想避免每条记录的redis和客户端库之间的数据往返。

【问题讨论】:

    标签: redis ttl


    【解决方案1】:

    没有单个命令可以做到这一点,但您可以将逻辑包装在服务器端 Lua 脚本中,并使用单个命令调用它。有关详细信息,请参阅EVAL 命令。

    【讨论】:

    • 我什至不知道 Lua 脚本,会检查一下,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2016-04-12
    • 2015-08-16
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多