Redis新版本(v6.0及之后)的安装配置图文教程(一)
标签:redis linux
Redis官网推出新版本(v6.0及之后)的应用,其的安装与配置有所不同。下文完整地记录了新版本的安装与配置的要点,以及安装过程的注意事项。
1、在Redis官网中(https://redis.io/)查看最新稳定版本的软件包,复制下载地址
2、可直接将软件包下载到Linux下
wget http://download.redis.io/releases/redis-6.0.5.tar.gz
3、解压软件包,并进入解压后的目录,使用make 命令编译软件
tar -zxvf redis-6.0.5.tar.gz
4、编译过程中可能出现如下报错,部分日志截图如下。(报错原因:Linux一般默认GCC版本是4.8.5,Redis新版本使用了更高版本的GCC)
(截取部分报错日志)
server.c:5153:94: 错误:‘struct redisServer’没有名为‘unixsocket’的成员
serverLog(LL_NOTICE,”The server is now ready to accept connections at %s”, server.unixsocket);
^
server.c:5154:19: 错误:‘struct redisServer’没有名为‘supervised_mode’的成员
if (server.supervised_mode == SUPERVISED_SYSTEMD) {
^
server.c:5155:24: 错误:‘struct redisServer’没有名为‘masterhost’的成员
if (!server.masterhost) {
^
server.c:5168:15: 错误:‘struct redisServer’没有名为‘maxmemory’的成员
if (server.maxmemory > 0 && server.maxmemory < 10241024) {
^
server.c:5168:39: 错误:‘struct redisServer’没有名为‘maxmemory’的成员
if (server.maxmemory > 0 && server.maxmemory < 10241024) {
^
server.c:5169:176: 错误:‘struct redisServer’没有名为‘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:5172:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员
redisSetCpuAffinity(server.server_cpulist);
^
server.c: 在函数‘hasActiveChildProcess’中:
server.c:1476:1: 警告:在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]
}
^
server.c: 在函数‘allPersistenceDisabled’中:
server.c:1482:1: 警告:在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]
}
^
server.c: 在函数‘writeCommandsDeniedByDiskError’中:
server.c:3790:1: 警告:在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]
}
^
server.c: 在函数‘iAmMaster’中:
server.c:4964:1: 警告:在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]
}
^
make[1]: [server.o] 错误 1
make[1]: 离开目录“/data/software/redis-6.0.5/src”
make: [all] 错误 2
5、所以要升级gcc的版本,接下来使用yum的方式编译安装GCC,
安装scl源
yum install centos-release-scl scl-utils-build
6、安装8版本的gcc、gcc-c++、gdb工具链
yum install -y devtoolset-8-toolchain
7、如下设置,由图可见,GCC版本已升级成8.3.1版本
scl enable devtoolset-8 bash
gcc —version
8、make编译成功后,可用命令 make test 进行测试下(该步骤可选)
若出现【Redis】编译错误zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
使用命令:make MALLOC=libc
详情参阅:https://www.cnblogs.com/richerdyoung/p/8066373.html
9、make test过程中可能缺少tcl的依赖包,通过命令 yum install tcl -y可安装
10、最后,Redis安装完成且通过所有测试项。