内存分配机制
在 redis
的内存分配机制中,有三种分配方法,分别是:jemalloc
,tcmalloc
,libc
。
三种方法分别是不同厂家提出的解决方案:
jemalloc
是facebook推出的tcmalloc
是Google推出的libc
是标准的内存分配库 malloc 和 free
由于 redis
没有自己的内存池,没有在标准的系统内存分配器上再添加本身的东西,所以系统内存分配器的性能及碎片率会影响到其性能。而这三种解决方案,调用优先级是:tcmalloc > jemalloc > libc
,因此三者的性能也是呈现这个序列。
jemalloc
从 redis2.4.4
开始就被写入 redis
源码了,但是不知道为什么到了 redis5.0.9
又无法直接使用了,可能是 gcc
的缺失导致中间文件不可用吧。