zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
解决办法: 使用以下命令
make MALLOC=libc
原因分析:
在README 有这个一段话。
Allocator
———Selecting a non-default memory allocator when building Redis is done
by setting theMALLOC
environment variable. Redis is compiled and
linked against libc malloc by default, with the exception of jemalloc
being the default on Linux systems. This default was picked because
jemalloc has proven to have fewer fragmentation problems than libc
malloc.To force compiling against libc malloc, use:
% make MALLOC=libc
To compile against jemalloc on Mac OS X systems, use:
% make MALLOC=jemalloc
说关于分配器allocator, 如果有MALLOC 这个环境变量, 会有用这个环境变量的去建立Redis。
而且libc 并不是默认的分配器, 默认的是 jemalloc, 因为 jemalloc 被证明比libc有更少的存储碎片问题。
但是如果你又没有jemalloc 而只有 libc 当然 make 出错。所以加这么一个参数。