如何刷新过期密钥的Redis密钥空间?

时间:2021-06-21 17:36:56

标签: redis redis-cli

Backstory:有问题的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

1 个答案:

答案 0 :(得分:0)

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

SELECT 2

选择“db2”,现在执行 DBSIZE 会提供更准确的输出。

Oye -- 所以问题是键还在那里!否则当 Redis 使键过期时,它会删除它

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