我在 redis 中有一些带 TTL 的键。因此,通常当 TTL 过去时,密钥将被驱逐。
但我想要做的是,在每次访问(检索)密钥时,我都想将 TTL 重置为我之前设置的原始值。
例如:我为一个键设置了 2 小时。1 小时后,访问密钥。那时我想再次将 TTL 设置为 2 小时。因此,只有在其 TTL 生命周期内未访问密钥时,该密钥才会被逐出。
如何有效地做到这一点?
您只能通过EXPIRE
使用访问命令发出另一个命令来执行此操作。甚至官方文档也没有提到任何其他选项。
您可能希望将这些命令放在管道上以获得更好的响应时间。
例如:
connection = redis.StrictRedis()
with connection.pipeline() as pipe:
pipe.get("key")
pipe.expire("key", 7200)
pipe.execute()
Run Code Online (Sandbox Code Playgroud)