yum install gcc
将下载好的redis-5.0.3放在/usr/local文件夹下,并解压
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar xzf redis-5.0.3.tar.gz
cd redis-5.0.3
进入到解压好的 redis-5.0.3 目录下,进行编译安装
make
修改配置文件(注意要使用后台启动,所以修改redis.conf里的daemonize改为yes)
vim redis.conf
启动redis服务
src/redis-server redis.conf
ps -ef | grep redis
src/redis-cli
quit
完成以上即安装成功
如果出现:
server.c:3772:22: 错误:‘struct redisServer’没有名为‘unixsocket’的成员
unlink(server.unixsocket); /* don’t care if this fails */
^
server.c: 在函数‘prepareForShutdown’中:
server.c:3783:15: 错误:‘struct redisServer’没有名为‘loading’的成员
if (server.loading || server.sentinel_mode)
^
server.c:3783:33: 错误:‘struct redisServer’没有名为‘sentinel_mode’的成员
if (server.loading || server.sentinel_mode)
^
server.c:3790:15: 错误:‘struct redisServer’没有名为‘supervised_mode’的成员
if (server.supervised_mode == SUPERVISED_SYSTEMD)
^
server.c:3799:15: 错误:‘struct redisServer’没有名为‘rdb_child_pid’的成员
if (server.rdb_child_pid != -1) {
^
server.c:3805:15: 错误:‘struct redisServer’没有名为‘module_child_pid’的成员
if (server.module_child_pid != -1) {
^
server.c:3807:40: 错误:‘struct redisServer’没有名为‘module_child_pid’的成员
TerminateModuleForkChild(server.module_child_pid,0);
^
server.c:3810:15: 错误:‘struct redisServer’没有名为‘aof_state’的成员
if (server.aof_state != AOF_OFF) {
^
server.c:3813:19: 错误:‘struct redisServer’没有名为‘aof_child_pid’的成员
if (server.aof_child_pid != -1) {
^
server.c:3816:23: 错误:‘struct redisServer’没有名为‘aof_state’的成员
if (server.aof_state == AOF_WAIT_REWRITE) {
^
server.c:3827:27: 错误:‘struct redisServer’没有名为‘aof_fd’的成员
redis_fsync(server.aof_fd);
解决方法:
1、先查看当前的gcc版本
#查看gcc的版本是否在 5.3以上
gcc -v
2、如果当前的gcc版本不是5.3以上,执行下面命令更新gcc版本
#升级到 5.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
3、再进入到redis的解压目录下的src目录,执行
make
即可继续完成 4步骤以后的操作