Linux安装Redis实现过程及报错解决方案
今天安装redis出现些之前安装不曾出现错误,一并在此做个记录
一、安装redis及出现错误
首先下载redis,官方下载地址页面:https://redis.io/download
我们这里选择稳定版6.0.1版本
正常安装步骤如下:
[root@localhost~]#yuminstallgcc [root@localhost~]#cd/usr/local [root@localhostlocal]#wgethttp://download.redis.io/releases/redis-6.0.1.tar.gz [root@localhostlocal]#tar-xvfredis-6.0.1.tar.gz [root@localhostlocal]#cd/usr/local/redis-6.0.1/ [root@localhostredis-6.0.1]#makePREFIX=/usr/local/redisinstall
这里报了如下错误
make[1]:***[server.o]错误1
make[1]:离开目录“/usr/redis-6.0.1/src”
make:***[all]错误2
server.c:2402:11:错误:‘structredisServer'没有名为‘assert_file'的成员
server.assert_file="";
^
server.c:2403:11:错误:‘structredisServer'没有名为‘assert_line'的成员
server.assert_line=0;
^
server.c:2404:11:错误:‘structredisServer'没有名为‘bug_report_start'的成员
server.bug_report_start=0;
^
server.c:2405:11:错误:‘structredisServer'没有名为‘watchdog_period'的成员
server.watchdog_period=0;
^
server.c:2411:11:错误:‘structredisServer'没有名为‘lua_always_replicate_commands'的成员
server.lua_always_replicate_commands=1;
^
server.c:在函数‘restartServer'中:
server.c:2464:32:错误:‘structredisServer'没有名为‘maxclients'的成员
for(j=3;j<(int)server.maxclients+1024;j++){
^
server.c:在函数‘adjustOpenFilesLimit'中:
server.c:2491:29:错误:‘structredisServer'没有名为‘maxclients'的成员
rlim_tmaxfiles=server.maxclients+CONFIG_MIN_RESERVED_FDS;
^
server.c:2497:15:错误:‘structredisServer'没有名为‘maxclients'的成员
server.maxclients=1024-CONFIG_MIN_RESERVED_FDS;
^
server.c:2529:53:错误:‘structredisServer'没有名为‘maxclients'的成员
unsignedintold_maxclients=server.maxclients;
^
server.c:2530:23:错误:‘structredisServer'没有名为‘maxclients'的成员
server.maxclients=bestlimit-CONFIG_MIN_RESERVED_FDS;
^
server.c:2554:59:错误:‘structredisServer'没有名为‘maxclients'的成员
(unsignedlonglong)bestlimit,server.maxclients);
^
server.c:在函数‘checkTcpBacklogSettings'中:
server.c:2574:48:错误:‘structredisServer'没有名为‘tcp_backlog'的成员
if(somaxconn>0&&somaxconn^
server.c:2575:171:错误:‘structredisServer'没有名为‘tcp_backlog'的成员
serverLog(LL_WARNING,"WARNING:TheTCPbacklogsettingof%dcannotbeenforcedbecause/proc/sys/net/core/somaxconnissettothelowervalueof%d.",server.tcp_backlog,somaxconn);
解决办法:升级gcc版本
[root@localhostredis-6.0.1]#gcc-v#查看gcc版本
[root@localhostredis-6.0.1]#yum-yinstallcentos-release-scl#升级到9.1版本
[root@localhostredis-6.0.1]#yum-yinstalldevtoolset-9-gccdevtoolset-9-gcc-c++devtoolset-9-binutils
[root@localhostredis-6.0.1]#sclenabledevtoolset-9bash
以上为临时启用,如果要长期使用gcc9.1的话:
[root@localhostredis-6.0.1]#echo"source/opt/rh/devtoolset-9/enable">>/etc/profile
再执行编译:
[root@mmjredisredis-6.0.1]#makePREFIX=/usr/local/redisinstall
安装成功会出现:Hint:It'sagoodideatorun'maketest'