分布式缓存服务 DCS-DCS Redis 5.0支持的新特性说明:内存使用优化

时间:2025-02-12 15:15:01

内存使用优化

Redis 5.0在上一版本基础上,在内存使用上做了进一步优化。

  • 主动碎片整理

    当key被频繁修改,value长度不断变化时,Redis会为key分配新的内存空间。由于Redis追求高性能,实现了自己的内存分配器来管理内存,因此并不会将原有内存释放给OS,从而导致出现内存碎片。当used_memory_rss/used_memory高于1.5,一般认为内存碎片占比过高,内存利用率低。

    因此,合理规划和使用缓存数据,规范数据写入,有助于减少内存碎片的产生。

    Redis 3.0及以下:可以通过定期重启服务解决内存碎片问题。建议实际缓存数据不超过配置可用内存的50%。

    Redis 4.0:支持主动整理内存碎片,服务在运行期间进行自动内存碎片清理。同时Redis 4.0支持通过memory purge命令手动清理内存碎片。

    Redis 5.0:增强版主动碎片整理,配合Jemalloc版本更新,更快更智能,延时更低。

  • HyperLogLog算法优化

    HyperLogLog是一种基数计数方法,使用少量的内存空间完成海量数据的计数统计,在Redis 5.0中,HyperLogLog算法得到改进,优化了计数统计时的内存使用效率。

    举个例子:B树计数效率非常高,但是内存消耗也比较多。而HyperLogLog可节省大量存储空间。当B树需要1M内存统计,HyperLogLog只需要1kb。

  • 内存信息统计报告能力增强

    INFO命令返回信息更加详实。

support.huaweicloud.com/dcs_faq/Redis5-newfeature.html