CentOS7编译安装Redis6.0.9
一、下载源码包
下载地址:https://redis.io/download
可以在Windows上打开下载地址,在如下界面上选择稳定版下载源码包,然后传到Linux上。
也以在直接在Linux上下载。
curl -O https://download.redis.io/releases/redis-6.0.9.tar.gz
然后解压下载好的压缩包,把解压后的文件夹移动到/usr/local下,并重命名。
tar -xzf redis-6.0.9.tar.gz
mv redis-6.0.9 /usr/local/redis
二、编译安装
先下载编译安装Redis的依赖,因为Redis是C语言编写的,所以主要安装C的编译环境
yum install gcc g++ gcc-c++ make -y
进入移动重命名后的redis文件夹进行编译安装
cd /usr/local/redis
# 开始编译
make -j 2
编译安装过程中出现大量错误如下图所示:
这是因为安装6版本的Redis需要5.3以上版本的gcc,而先前YUM安装的gcc默认安装的是4.8.5版本。
# 查看gcc版本
gcc -v
升级gcc到9版本
yum install centos-release-scl -y
yum install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils -y
然后启用gcc 9。我看到有些博客中写到启用gcc9的方法如下
# 临时启用gcc 9
scl enable devtoolset-9 bash
# 长期启用gcc 9
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
这种临时启用的方法我发现单独在终端执行没有问题,不过把它写到脚本里执行的时候,执行到这一句就会退出脚本,我还不清楚是什么原因。所以在脚本中我直接使用source /opt/rh/devtoolset-9/enable
临时启用gcc 9。
执行完毕后gcc升级到9.3.1版本
升级好gcc后重新编译
# 清除之前编译的可执行文件及配置文件。
make clean
make -j 2
make install
三、启动Redis
编译完成后,在/usr/local/redis/src目录中多了两个可执行文件redis-cli和redis-server。
redis-server用于启动Redis服务
redis-cli是Redis的客户端
/usr/local/bin目录中也多了几个可执行文件
执行redis-server,出现如下界面说明Redis算是装好了。不过有几个警告需要处理一下,解决的方法在警告信息中已经给出了。
# 第一个警告的解决方法
echo net.core.somaxconn=511 >> /etc/sysctl.conf
# 第二个警告的解决方法
echo vm.overcommit_memory=1 >> /etc/sysctl.conf
# 使/etc/sysctl.conf生效
sysctl -p
# 第三个警告的解决方法
echo never > /sys/kernel/mm/transparent_hugepage/enabled
之后再重新执行redis-server,可以看到,警告信息消失了。Redis服务顺利启动。
此时Redis服务在前台执行,修改Redis的配置文件,让Redis服务可以在后台运行
vim /usr/local/redis/redis.conf
将daemonize no改为daemonize yes,然后使用配置文件重新启动redis
cd /usr/local/bin/
# 启动redis服务
./redis-server ../redis/redis.conf
# 启动redis客户端
redis-cli
打开Redis客户端,可以成功存储数据。