以下是我的redis设置的快照
Total Keys Keys with Expiry Keys without Expiry
60Lacs 20Lacs 40Lacs
Redis是否提供任何方法:
在没有指定TTL的应用程序创建的任何密钥上自动设置1天的TTL
删除所有没有TTL的现有密钥
答案 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)