Redis没有TTL

时间:2017-09-21 17:44:01

标签: redis

以下是我的redis设置的快照

Total Keys  Keys with Expiry    Keys without Expiry
60Lacs      20Lacs              40Lacs  

Redis是否提供任何方法:

  1. 在没有指定TTL的应用程序创建的任何密钥上自动设置1天的TTL

  2. 删除所有没有TTL的现有密钥

1 个答案:

答案 0 :(得分:1)

就问题一而言 - 不,Redis不提供全局TTL设置。必须基于每个密钥设置TTL。有一些方法可以编写解决方案脚本,但内置任何内容。如果您担心内存使用情况,请查看配置并修改最大内存设置。有关详细信息,请参阅此answer

就问题2而言 - Python中的这个脚本是如何迭代键并删除没有TTL的任何东西的基本示例,您应该根据自己的需要进行构建。有关制作此表演者的重要信息,请参阅this answer

import redis
r = redis.StrictRedis(host='localhost', port=6379)

for key in r.scan_iter("*"):
    ttl = r.ttl(key)
    if ttl == -1:
        r.delete(key)