机器/redis准备
10.2.2.148 master
10.2.2.171 salve
分别在data创建redis目录
复制redis-6.0.6.tar.gz 至 reids目录
tar -vxvf redis-6.0.6.tar.gz
查看 gcc scl
如果要redis-6.x以上版本,需要查看系统gcc版本是否大于4.8.5,否则会出现如下gcc版本问题,
编译 redis-6.x,要求 C11 编译器,否则会遇到大量如下所示的错误:
主要原因是从 redis-6.x 开始的多线程代码依赖C标准库中的新增类型 _Atomic 。但是注意 gcc 从 4.9 版本才开始正式和完整地支持 stdatomic(gcc-4.8.5 部分支持)。centos7默认的 gcc 版本为:4.8.5 < 5.3 无法编译。
查看 gcc 版本
gcc -v
低于5.3
查看已有版本列表
scl -l
切换版本:
scl enable devtoolset-7 bash
如是scl -l 不存高版本需要升级gcc版本方法之一使用scl软件集
- 安装scl源:
yum install centos-release-scl scl-utils-build
- 列出scl有哪些源可以用
yum list all --enablerepo='centos-sclo-rh'
- 安装5.3版本的gcc、gcc-c++、gdb
yum install devtoolset-7-gcc.x86_64 devtoolset-7-gcc-c++.x86_64 devtoolset-7-gcc-gdb-plugin.x86_64
- 查看从 SCL 中安装的包的列表
scl --list 或 scl -l
- 切换版本
scl enable devtoolset-7 bash
- 使用exit 退出当前scl版本的bash环境
scl --list 或scl -l
scl --help 或 scl -h
scl enable <scl-package-name> <command> #使用scl来执行command命令
scl enable devtoolset-4 bash #使用scl创建一个scl包的bash会话环境
exit #退出当前scl bash环境,恢复成系统bash环境
编译redis
- 进入redis-6.0.6目录
cd /data/redis/redis-6.0.6
- make 编译
创建目录
cd /data/redis
创建pid目录
mkdir pidfile
创建日志目录
mkdir logfile
创建数据目录
mkdir redis_data
复制redis.conf
cp redis.conf redis_10000.conf
编辑配置内容
vim redis_10000.conf
(1)bind 0.0.0.0
(2)port 10000
(3)daemonize yes
(4)pidfile /data/redis/pidfile/redis_10000.pid
(5)logfile /data/redis/logfile/redis.log
(6)dir /data/redis/redis_data
(7)requirepass 123456 #本机密码
(8)# 主节点 Redis 的 IP 和端口 注:低版本 Redis 有可能是 slaveof (只在从节点配置)
replicaof 10.2.2.148
(9)# 主节点上的密码 (只在从节点配置)
masterauth 123456
说明:
#daemonize no 修改为daemonize yes 意为开启后台运行
#protected-mode yes 去掉#号,意为开启保护模式,可以选择绑定ip,也可以指定密码
dir ./ 修改为dir /opt/redis6/data 意为把指定redis的数据存放目录
logfile 这行修改为 /opt/redis/log/redis-6379.log # 指定日志存放目录
requirepass 本机密码
replicaof # 主从复制 仅从节点需要配置
masterauth # 主节点密码
主节点启动服务
cd /data/redis/redis-6.0.6
./src/redis-service redis_10000.conf
从节点启动服务
cd /data/redis/redis-6.0.6
./src/redis-service redis_10000.conf
设置开机启动参考
https://blog.csdn.net/llwy1428/article/details/106741119