2015-05-09 27 views
1

使用DEL命令删除了95%以上的可能密钥。 save和bgsave后的数据库转储文件仍然与之前的删除相同。 我也注意到内存(used_memory_human:160.96M)仍然保持之前的高度保存。我只剩下7669个按键。删除95%的密钥后,Redis数据库文件(dump.rdb)不收缩

KEYSPACE

DB1:键= ,期满= 145,avg_ttl = 13314857

如何压缩删除键后的内存和数据库?

回答

2

RDB的大小和used_memory是您在Redis中的实际数据量。这意味着其余的7669个密钥占据了这个空间 - 无论它只是一个隐藏在其中的大密钥,还是一些大密钥或者所有密钥都是大约0.05MB。

+0

我怀疑在这个B/C的内存和数据库大小不会改变之前和之后删除。键/值是所有记录的相同对象。 **之前删除** #Memory used_memory:168782256 used_memory_human:** ** 160.96M# DB1 KEYSPACE:键= ** 49487 **,到期= 0,avg_ttl = 0 ###删除后### db1:keys = 7669,expires = 145,avg_ttl = 13314857 –

+0

当您加载RDB时会发生什么? –

+0

当我加载RDB时,它显示我有7669个键,但是在此之前或之后内存大小和db save不会缩小。当我运行** SAVE **或** BGSAVE **时,RDB转储大小与删除前的原始db大小几乎相同。 –

0

这听起来像你正在试图找出哪些键在你的数据库中占用最多的内存。

,如果你使用的是默认的主机和端口号,此命令可以帮助你

redis-cli -h hostname -p portnumber --bigkeys

redis-cli --bigkeys

它将通过数据库并报告找到的最大键。对于拥有多个密钥的大型数据库而言,它可能非常耗时,但它应该很快运行8k个密钥。