一、redis 安装

安装请参考
安装调试详细说明
redis api参考
linux安装问题:

问题一

cd hiredis && make static
make[3]: 进入目录“/usr/programfile/redis-4.0.11/deps/hiredis”
gcc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c
make[3]: gcc:命令未找到
make[3]: * [net.o] 错误 127
make[3]: 离开目录“/usr/programfile/redis-4.0.11/deps/hiredis”
make[2]: * [hiredis] 错误 2
make[2]: 离开目录“/usr/programfile/redis-4.0.11/deps”
make[1]: [persist-settings] 错误 2 (忽略)
CC adlist.o
/bin/sh: cc: 未找到命令
make[1]: * [adlist.o] 错误 127
make[1]: 离开目录“/usr/programfile/redis-4.0.11/src”
make: * [all] 错误 2
解决方案:yum install gcc

问题二

zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error “Newer version of jemalloc required”
make[1]: * [adlist.o] Error 1
make[1]: Leaving directory `/data0/src/redis-2.6.2/src’
make: * [all] Error 2

解决方案

make MALLOC=libc

说明:Redis并没有自己实现内存池,没有在标准的系统内存分配器上再加上自己的东西。

redis-2.4以上自带jemalloc,你不需要加任何参数,通过zmalloc.c源码中我们可以看到,Redis在编译时,会先判断是否使用tcmalloc,如果是,会用tcmalloc对应的函数替换掉标准的libc中的函数实现。其次会判断jemalloc是否使得,最后如果都没有使用才会用标准的libc中的内存管理函数。所以用tcmalloc优化请谨慎使用,这两着分配器碎片率相差不大,建议用自带jemalloc。
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/helloWorldAndYou/article/details/82493969