python - 访问redis键时如何重置TTL?

标签 python redis

我在 redis 中有一些带有 TTL 的键。因此,通常当 TTL 通过时 key 将被逐出。

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

例如:我给一个key设置了2小时。 1 小时后, key 被访问。我想那个时候再把TTL设置成2小时。因此, key 只有在其 TTL 生命周期内未被访问时才会被逐出。

如何有效地做到这一点?

最佳答案

您只能通过使用访问命令发出另一个 EXPIRE 命令来完成此操作。即使是 official documentation没有提及任何其他选项。

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

例如:

connection = redis.StrictRedis()
with connection.pipeline() as pipe:
    pipe.get("key")
    pipe.expire("key", 7200)
    pipe.execute()

关于python - 访问redis键时如何重置TTL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57843030/

相关文章:

python - 将参数传递给 PyRun_File(***)

lua - redis lua - eval 在处理 Long.MAX_VALUE 时返回错误值

python2 : merge a list of csv elements

python - 在keras自定义损失中使用层输出

python - 终止挂起的 redis pubsub.listen() 线程

java - 安全 OAuth2 单点注销

database - 在 Redis 中存储和读取通知的最佳方法(Json 或多数据结构)?

Redis 选择数据类型的建议

python - Django:将 "NULLS LAST"添加到查询

python - 在找到局部最大值之前,我可以与 scipy 的 odeint 集成吗?