Redis 编译安装

下载解压

在要安装的目录下下载后解压缩

1
2
wget http://download.redis.io/releases/redis-6.0.4.tar.gz
tar xzf redis-6.0.4.tar.gz

make 编译

进入解压后的目录 redis-6.0.4,输入 make 回车,出现:cc: Command not fund ,是因为系统中没有安装 GCC 编译器。

GCC版本低
GCC版本低

安装 GCC

输入命令安装 GCC 编译器

1
yum install gcc

再次 make 时,出现 In file included from adlist.c:34:0:zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directorycompilation termianted 错误

错误文件
错误文件

是因为之前的编译的缓存文件存在,执行

1
make distclean

升级 GCC

再次 make,由于 GCC 版本过低可能会出现 server.c:5166...[server.o] Error 1Leaving directory '/root/redis/redis-6.0.4/src' 错误

GCC版本过低错误
GCC版本过低错误

升级 GCC 的版本

1
2
3
4
5
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
# 设置改版本为默认
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
source /etc/profile

升级好之后执行 make distcleanmake 命令,编译成功。此时编译好之后在 src 目录下已经生成了可执行的 redis-serverredis-cli 服务,但是我们把它安装在特定的文件夹中和源码区分开。

安装

1
make PREFIX=/root/tools/redis install

PREFIX 是将 Redis 服务安装在这个文件夹下面。就是将生成的服务拷贝到这个文件夹下面。

配置

Redis 服务快捷访问

vi /etc/profile 增加

1
2
export REDIS_HOME=/root/tools/redis
export PATH=$PATH:$REDIS_HOME/bin

退出保存后,利用 source /etc/profile 重新在当前 bash 加载文件中的命令。使得可以在任意路径执行 Redis 的服务。

配置 Redis 服务

进入到源码文件夹中的 utils 文件夹。执行 ./install_server.sh

服务配置错误
服务配置错误