【问题标题】:Does Redis reset expiration timeRedis 是否重置过期时间
【发布时间】:2021-03-23 15:16:22
【问题描述】:

我正在使用client.setex() 创建一个过期时间为 3600 秒的 Redis 缓存,但我也会不时更新它,为此我使用的是client.set()。 想知道每次更新缓存时到期时间是否保持不变或延长 3600。

【问题讨论】:

    标签: node.js redis


    【解决方案1】:

    set() 将删除 Redis 中现有的过期时间。

    你可以使用:

    client.set(key,value, "EX", client.ttl(key))
    

    用于继续过期时间。

    更多详情:

    https://stackoverflow.com/a/21897851/5677187

    【讨论】:

      【解决方案2】:

      previous answer 是正确的。但是由于client.ttl(key),这涉及到另一个网络往返。

      您应该考虑 KEEPTTL 参数和 SET 命令,该命令自 Redis 6.0 起可用。

      client.set(key, value, "KEEPTTL")
      

      与上一个相比,由于网络往返次数减少了一半,您的吞吐量将翻倍。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-09-11
        • 2020-03-22
        • 1970-01-01
        • 2016-05-15
        • 2017-10-09
        • 2013-10-02
        • 1970-01-01
        相关资源
        最近更新 更多