yum -y install cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make gcc-c++ libstdc++-devel tcl
=========20210323 redis-6.0.5============
安装jemalloc
yum install -y bzip2
wget https://github.com/jemalloc/jemalloc/releases/download/5.1.0/jemalloc-5.1.0.tar.bz2
tar jxvf ./jemalloc-5.1.0.tar.bz2
cd jemalloc-5.1.0
./configure
make
make install
安装redis
cd 到redis的解压目录,编译依赖
cd /app/redis-4.0.10/deps/
make lua hiredis linenoise jemalloc
cd /app/redis-4.0.10/
make && make install
Redis手动编译安装——采坑记(重点解决缺失jemalloc.h)_Cooder_SXK的博客-CSDN博客
--------------------------------------
jemalloc在linux上从安装到使用(jemalloc在linux上从安装到使用_xiaofei_chain的博客-CSDN博客_jemalloc编译)
先github上下载:
https://github.com/jemalloc/jemalloc/releases
下载到linux目录下解压:
tar -xjvf jemalloc-4.2.1.tar.bz2
在此目录下预编译
./configure
make -j8 && make install
运行程序时可能会报找不到库:
只要将jemalloc的库被系统找到即可:
echo /usr/local/jemalloc/lib >> /etc/ld.so.conf
ldconfig
再次运行即可
redis6安装
Linux下安装redis常见错误server.c:3318:16: error: ‘struct redisServer‘ has no member named ‘loading‘
原因:CentOS 7的gcc版本为4.8.5,Redis 6.0.5最低需要gcc4.9,因此需要升级gcc版本
devtoolset-3对应gcc4.x.x版本
devtoolset-4对应gcc5.x.x版本
devtoolset-6对应gcc6.x.x版本
devtoolset-7对应gcc7.x.x版本
devtoolset-8对应gcc8.x.x版本
devtoolset-9对应gcc9.x.x版本
解决办法:升级gcc
1:
yum -y install centos-release-scl
2:
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
或者
yum install devtoolset-9-gcc*
3:
scl enable devtoolset-9 bash
值得注意的是这仅仅在当前bash生效,如果需要永久生效,可以请自行添加环境变量。
//注意:scl命令启用只是临时的,推出xshell或者重启就会恢复到原来的gcc版本。 //如果要长期生效的话,执行如下: echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
大功告成,查看一下gcc版本
gcc -v
然后
wget https://github.com/antirez/redis/archive/redis-6.0.5.tar.gz
tar -zxvf redis-6.0.5.tar.gz
cd redis-6.0.5
make && make install