Centos7安裝redis6.0.X時遇到的問題
阿新 • • 發佈:2021-01-07
目錄
錯誤1
在make的時候,提示如下錯誤:
server.c:5170:39: error: ‘struct redisServer’ has no member named ‘maxmemory’
if (server.maxmemory > 0 && server.maxmemory < 1024*1024) {
^
server.c:5171:176: error: ‘struct redisServer’ has no member named ‘maxmemory’
serverLog( LL_WARNING,"WARNING: You specified a maxmemory value that is less than 1MB (current value is %llu bytes). Are you sure this is what you really want?", server.maxmemory);
^
server.c:5174:31: error: ‘struct redisServer’ has no member named ‘server_cpulist’
redisSetCpuAffinity( server.server_cpulist);
錯誤原因:gcc版本太低
解決辦法:升級gcc
# 檢視gcc版本是否在5.3以上,centos7.6預設安裝4.8.5
gcc -v
# 升級gcc到5.3及以上, 如下: 升級到gcc 9.3: yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils scl enable devtoolset-9 bash 需要注意的是scl命令啟用只是臨時的,退出shell或重啟就會恢復原系統gcc版本。
如果要長期使用gcc 9.3的話:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
這樣退出shell重新開啟就是新版的gcc了(PS:重啟Centos7即可)
以下其他版本同理,修改devtoolset版本號即可
安裝redis-6.0.9
wget http://download.redis.io/releases/redis-6.0.9.tar.gz
tar -zxvf redis-6.0.9.tar.gz
cd redis-6.0.9/
make
make install
make test # 嫌浪費時間可以跳過