访问redis密钥时如何重置TTL?

Ahs*_*que 5 python redis

我在 redis 中有一些带 TTL 的键。因此,通常当 TTL 过去时,密钥将被驱逐。

但我想要做的是,在每次访问(检索)密钥时,我都想将 TTL 重置为我之前设置的原始值。

例如:我为一个键设置了 2 小时。1 小时后,访问密钥。那时我想再次将 TTL 设置为 2 小时。因此,只有在其 TTL 生命周期内未访问密钥时,该密钥才会被逐出。

如何有效地做到这一点?

ntk*_*tki 7

您只能通过EXPIRE使用访问命令发出另一个命令来执行此操作。甚至官方文档也没有提到任何其他选项。

您可能希望将这些命令放在管道上以获得更好的响应时间。

例如:

connection = redis.StrictRedis()
with connection.pipeline() as pipe:
    pipe.get("key")
    pipe.expire("key", 7200)
    pipe.execute()
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,我也找不到比这个更好的了。 (2认同)