redis内存碎片

一、什么是内存碎片

redis数据删除后,所占用内存不会马上换给操作系统,而是交给内存分配管理器,所以对操作系统来说redis仍然占用着这些内存。

这里有个风险点是:redis释放的内存有可能是不联系的,这种不连续的内存很可能无法再次使用,最终造成了内存的浪费。

二、如何判断有内存碎片

可以通过redis提供的命令来查看redis的内存使用情况:

 ./redis-cli info memory

三、内存碎片是怎么形成的

3.1 内因:jemalloc分配机制导致

3.2 外因:

四、如何清理内存碎片

4.1 重启

重启是最简单的办法,但是重启后如果没有开启rdb或者aof,数据会彻底丢失。如果开启了持久化机制,恢复需要一定的时间,恢复期间redis本身又不可用。所以重启不是第一选择,比较优雅的办法是采用redis自身的碎片清理机制。

4.2 redis内存碎片自动清理机制

4.0版本后redis提供了自动内存碎片清理机制。

posted @ 2024-09-04 20:58  ibrake  阅读(89)  评论(0编辑  收藏  举报