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