【问题标题】:How to flush Redis keyspace of expired keys?如何刷新过期键的 Redis 键空间?
【发布时间】:2021-06-21 17:36:56
【问题描述】:

背景故事:Redis 数据库的 keyspace 报告了大量过期的 key,内存使用量已达到最大值。使用此数据库的应用程序遇到(罕见的)间歇性超时,我认为(以我有限的知识)可能是因为 Redis 必须在每次创建新密钥时弹出过期的密钥。

所以我的问题是:我如何告诉 Redis 删除所有过期的密钥?

其次——是否可以使用 redis-cli 访问/查看过期的密钥?

这是我正在查看的INFO 的一部分:

maxmemory_policy:allkeys-lru
expired_keys:24326586
evicted_keys:134022997
keyspace_hits:2684031719
keyspace_misses:186380210
slave_expires_tracked_keys:0
active_defrag_key_hits:0
active_defrag_key_misses:0
db2:keys=12994468,expires=3193,avg_ttl=1891176

【问题讨论】:

    标签: redis redis-cli


    【解决方案1】:

    为我自己、后代和任何其他 Redis 新手回答。我正在查看错误的“数据库”。我的 错误 印象是 Redis 只有一个表,但看看我的问题你会看到“db2”。我对此进行了搜索,发现 Redis 最多可以有 16 个由从零开始的索引标识的数据库。在这种情况下:

    SELECT 2
    

    选择“db2”,现在执行DBSIZE 可以得到更准确的输出。

    噢——所以问题是密钥还在那里!否则当 Redis 过期一个密钥时它删除它

    哎呀!我留下我的问题是因为其他人可能会想问同样的问题并走错了路。

    【讨论】:

      猜你喜欢
      • 2021-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      • 1970-01-01
      • 2014-09-16
      • 1970-01-01
      相关资源
      最近更新 更多