每个数据库的redis内存利用率

时间:2012-11-02 02:52:16

标签: redis administration

Redis允许将数据存储在16个不同的“数据库”(0到15)中。有没有办法利用记忆和每个数据库的磁盘空间INFO命令仅列出每个数据库的密钥数。

3 个答案:

答案 0 :(得分:7)

请参阅redis-rdb-tools

您可以通过数据库获得大致的内存使用量,应该在现实的10%之内。

答案 1 :(得分:3)

不,您无法单独控制每个数据库。这些“数据库”仅用于对数据进行逻辑分区。

你可以做什么(取决于你的具体要求和设置)是旋转多个redis实例,每个实例执行不同的任务,每个实例都有自己的redis.conf文件,带有内存上限。但是磁盘空间不能限制,至少不能用Redis级别。

旁注:请记住,16数据库编号不是硬编码的 - 您可以在redis.conf中进行设置。

答案 2 :(得分:0)

我是通过在Redis数据库中的所有键上调用dump并测量使用的总字节数来完成的。这会降低您的服务器速度并需要一段时间。看起来大小dump返回的大小比实际内存使用小4倍。这些数字可以让您了解哪个数据库占用的空间最多。

这是我的代码: https://gist.github.com/mathieulongtin/fa2efceb7b546cbb6626ee899e2cfa0b