1.远程下载稳定版本
wget http://download.redis.io/releases/redis-6.0.7.tar.gz
编译 redis-6.x,要求 C11 编译器(因为redis是用c写的),否则会遇到大量如下所示的错误:
server.h:1051:5: 错误:expected specifier-qualifier-list before ‘_Atomic’
server.c:1032:31: 错误:‘struct redisServer’没有名为‘logfile’的成员
主要原因是从 redis-6.x 开始的多线程代码依赖C标准库中的新增类型 _Atomic 。但是注意 gcc 从 4.9 版本才开始正式和完整地支持 stdatomic(gcc-4.8.5 部分支持)。centos7默认的 gcc 版本为:4.8.5 < 5.3 无法编译
2.查看linux系统gcc版本:
gcc --version
3.依次执行下面4句更新gcc版本
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils#临时有效,退出 shell 或重启会恢复原 gcc 版本
scl enable devtoolset-9 bash#长期有效
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
4.解压redis-6.0.7.tar.gz ,并把redis-6.0.7目录移动到/usr/local目录
tar -zxvf redis-6.0.7.tar.gz
mv redis-6.0.7 /usr/local
cd /usr/local/redis-6.0.7/
解压完成后发现目录 /usr/local下方生成了个redis//bin
5.编译
进入/usr/local/bin编译
make
make install
6.在/usr/local/redis//bin下新建一个目录mkdir myredis-config ,并从redis-6.0.19拷贝redis.conf 到该新建目录下
mkdir myredis-config
cp redis-6.0.19/redis.conf redis/bin/myredis-config
7.更改配置文件,设置成后台自动启动
vim redis.conf
将 daemonize no
修改为 daemonize yes
;
8.启动测试,进入/usr/local/redis//bin,执行:
./redis-server /usr/local/redis-6.0.19/redis.conf #这句是启动redis的命令
ps -ef | grep redis #这句测试redis是否启动了
redis-cli -p 6379 #这句是让客户端启动
9.关闭redis
shutdown
exit