vlambda博客
学习文章列表

CentOS 7 装 Redis 6,重新焕发活力

众所周知,Redis 6 有很多激动人心的改进,比如多线程 IO,比如更优的过期循环,比如 ACLs 权限控制,等等。现在 Redis 6 的最新稳定版本已经到了 6.0.5,是时候尝尝鲜了。

CentOS 7 的用户比较悲催,默认的 redis-server 还停留在 2.x,想升级到 Redis 6,只能从源码编译。

然而这里又有一个新问题。

因为 Redis 6 的编译需要用到高版本的 gcc,CentOS 7 上默认的 gcc、g++ 版本是不够的(当前最新是 4.8.5)。

CentOS 7 上安装高版本 gcc 的办法,很多还是自己编译,但这不是我所要的方案。工具而已,又没有特殊要求,不要太折腾。我最希望的还是用 dnf 的方式安装。

今天终于让我找到一个。

# Install CentOS SCLo RH repository:
dnf install -y centos-release-scl-rh

# Install devtoolset-9-gcc-c++ rpm package:
dnf install -y devtoolset-9-gcc-c++ devtoolset-9-gcc

在虚拟机上安装 gcc/g++,下载安装包的时候,速度还挺快的。赞一个。

也许是为了不给用户造成不便,避免冲突,安装包没有覆盖环境变量。所以使用的时候还需要配置环境变量。

export PATH=/opt/rh/devtoolset-9/root/usr/bin:$PATH

需要注意的是,也许还需要对 glibc 等做配置。

# 设置 libstdc++ 的 headers path
export CPP_INCLUDE_PATH+=:/opt/rh/devtoolset-9/root/usr/include/c++/9
# 设置 libstdc++ 的 lib path
export LD_LIBRARY_PATH+=:/opt/rh/devtoolset-9/root/usr/lib
echo "/opt/rh/devtoolset-9/root/usr/lib" > /etc/ld.so.conf.d/devtoolset-9.conf
echo "/opt/rh/devtoolset-9/root/usr/lib64" >> /etc/ld.so.conf.d/devtoolset-9.conf
ldconfig -v

安装完 gcc,直接去 redis 的源码目录里面,执行编译并安装的命令即可。

cd /path/to/redis-6.0.5
make PREFIX=/usr/local/redis-6.0.5 install