我正在查看Redis为Web应用程序备份的rdb文件。有4个这样的文件(4个不同的redis服务器同时工作),大小为:13G + 1.6G + 66M + 14M = ~15G
然而,这些相同的4个实例似乎正在占用43.8GB
的记忆(根据新遗物)。为什么在mem和磁盘中占用多少空间redis数据之间存在如此大的差异?这可能是一个错误的配置,问题可以得到帮助吗?
答案 0 :(得分:2)
我认为没有任何问题。
首先,数据以压缩格式存储在rdb文件中,因此大小小于内存中的大小。 rdb文件的大小取决于数据的类型,但它可以占redis使用的内存的20-80%
您的内存使用量可能超过实际使用量的另一个原因(您可以将新文件的内存与从redis-cli info memory命令获得的内存进行比较)是因为内存碎片。每当redis需要更多内存时,它将获得从操作系统分配的内存,但不会轻易释放(当密钥过期或被删除时)。这不是一个大问题,因为redis只有在使用它拥有的额外内存后才会要求更多内存。您还可以使用redis-cli info memory命令检查内存碎片。