在 centos 7 上安装 redis 6

Posted on 2020-05-22 17:00 in Linux

遇到的问题

在 centos 7 的 yum 源中 redis 的版本为 3.2.12-2.el7,想要安装最新版的 redis 6,只能通过源代码安装,但是默认的环境会遇到编译问题,如下:

In file included from server.c:30:0:
server.h:1022:5: error: expected specifier-qualifier-list before '_Atomic'
     _Atomic unsigned int lruclock; /* Clock for LRU eviction */
     ^

是因为默认的 gcc 版本(gcc version 4.8.5)太低导致,不支持新特性

解决办法

解决办法就是升级 gcc 版本

升级到 gcc 7.3

sudo yum -y install centos-release-scl
sudo yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils
sudo scl enable devtoolset-7 bash

还可以选择升级到其他版本

devtoolset-8: gcc 8.3
devtoolset-9: gcc 9.1

升级完成之后并不会覆盖系统默认的gcc,需要使用脚本来切换,x为要启用的版本

scl enable devtoolset-x bash 

安装和配置

后续就可以按照常规安装步骤来执行,就不再赘述了

$ wget http://download.redis.io/releases/redis-6.0.3.tar.gz
$ tar xzf redis-6.0.3.tar.gz
$ cd redis-6.0.3
$ make

修改配置文件

bind 192.168.1.100 127.0.0.1 ::1 
daemonize yes
appendonly yes

打开 appendonly yes 后,会启用 RDB-AOF 混合持久化