分析Redis内存使用情况

Hen*_*hiu 38 memory redis

有什么工具可以用来找出Redis占用多少内存?

yoj*_*o87 37

尝试查看INFO命令.我还建议阅读一篇关于Redis的内存使用情况,您可以找到多少内存正在采取特定的数据结构的更多信息.


Sri*_*nan 30

请参阅https://github.com/sripathikrishnan/redis-rdb-tools

Rdb Tools报告数据库中每个key = value对使用的内存.它解析redis转储文件,并构造一个csv文件.此csv文件中的每一行都是一个键,列包含该键占用的内存.

您可以在键或数据类型上过滤结果.由于该工具在转储文件上运行,因此不会影响redis服务器的性能.

要记住的一点 - 报告的内存使用量是近似值.根据我的实验,我发现实际内存使用率比该工具报告的高出约15%.


Zr4*_*r40 6

如果loglevel设置为verbose或,Redis将每5秒输出一次内存使用量debug.

例如,这是我几乎空的数据库的输出:

[49523] 07 Apr 00:38:58 - DB 0: 2 keys (0 volatile) in 4 slots HT.
[49523] 07 Apr 00:38:58 - 1 clients connected (0 slaves), 924416 bytes in use
Run Code Online (Sandbox Code Playgroud)

您可以看到数据库中有2个密钥,1个连接的客户端.正在使用924416个字节.总内存使用量(如命令used_memory_rss返回的字段所示INFO)可能略高(有关详细信息,请参阅INFO文档).

存储在redis中的数据显然需要内存,但它不是内存使用的唯一可控原因.配置了更多数据库后,内存使用量会增加(在我的系统上每个数据库大约450个字节).每个连接也使用内存(在我的系统上每个连接大约8千字节).