搭建redis哨兵模式的大致步骤为
哨兵模式主要做了两件事
下载地址:https://redis.io/download
解压: tar zxvf redis-4.0.10.tar.gz
编译安装
# 1. 进入到解压后的文件夹 cd /usr/redis-4.0.10 # 2. 执行make命令 make # 如果执行make命令报错,error: jemalloc/jemalloc.h: No such file or directory
,则需要指定内存管理方式
make MALLOC=libc
# 3. 进入
cd /usr/redis-4.0.10/src
make install
启动服务端测试
cd /usr/redis-4.0.10/src
./redis-server ../redis.conf
启动客户端测试
cd /usr/redis-4.0.10/src
./redis-cli
成功进入下一步
配置master
1 # NETWORK 设置 2 # 关闭保护模式 3 # 注意:redis3.0.x版本没有该参数, 声明会报错 4 protected-mode no 5 # 绑定IP地址,可以通过ifconfig 获取Ip地址 6 # bind 172.168.3.166 7 # 保持默认值,也可以修改 8 port 6381 9 # Client 端空闲断开连接的时间,0表示不断开 10 # timeout 30 11 # GENERAL 设置 12 # 默认值是no,把值修改为yes,以后台模式运行 13 daemonize yes 14 # 日志文件的位置 15 logfile /usr/redis/log/redis-server_sentinel.log 16 # SNAPSHOTTING 设置 17 # SNAPSHOTTING文件的路径 18 # dir /usr/redis/redisdb 19 # 设置密码 20 masterauth root 21 requirepass root 22 # APPEND ONLY MODE 设置 23 # 默认值是No,意思是使用RDB全量持久化的方式。Yes是使用AOF增量持久化的方式 24 # appendonly yes 25 # appendfsync always 26 # 关闭集群模式 27 # cluster-enabled no
配置slave
# NETWORK 设置 protected-mode no # bind 172.168.3.167 port 6381 # timeout 30 # GENERAL 设置 daemonize yes logfile /usr/redis/log/redis-server_sentinel.log # SNAPSHOTTING 设置 # dir /usr/redis/redisdb # 设置密码 masterauth root requirepass root # REPLICATION 设置 # 主服务器的Ip地址和Port端口号 slaveof 172.168.3.166 6381 # 如果slave 无法与master 同步,设置成slave不可读,方便监控脚本发现问题 # slave-serve-stale-data no # APPEND ONLY MODE 设置 # appendonly yes # appendfsync always # 关闭集群模式 # cluster-enabled no
# 关闭保护模式,需要将redis.conf中的属性也设置为no protected-mode no # 开启守护线程 daemonize yes # sentinel默认监听26379端口,所以运行前必须确定该端口没有被别的进程占用 bind 127.0.0.1 172.168.3.166 # 对应服务器相应的ip, 也可直接注掉 port 26379 # 工作路径 # dir /usr/redis/sentinel-work # 指明日志文件名 logfile /usr/redis/sentinellog/sentinel.log # 配置监听的IP和port,以及将主服务器判断为失效并下线至少需要几个sentinel的同意 sentinel monitor mymaster1 192.168.3.166 6379 2 # 配置验证密码 sentinel auth-pass mymaster root # 多长时间(默认30秒)不能使用后标记为sdown状态(单位毫秒) # sentinel down-after-milliseconds mymaster 30000 # 指定了最多可以有多少个slave同时对新的master进行同步 # sentinel parallel-syncs mymaster 1 # 指定故障转移超时时间(单位毫秒) # sentinel failover-timeout mymaster 180000
开启防火墙
## 查看防火墙状态,若显示running则为开启防火墙状态 firewall-cmd –state ## 开启防火墙 systemctl start firewalld.service ## 查看已开放端口号 firewall-cmd --list-ports ## 开放指定端口号,下方示例端口号为6379 firewall-cmd --zone=public --add-port=6379/tcp –permanent ## 重启防火墙,如此,端口号才算开放成功 firewall-cmd --reload
# centos防火墙更多配置参考:https://blog.csdn.net/qq_36850813/article/details/91353864
配置完成,接下来开始启动
启动redis
# 指定redis配置文件启动 cd /usr/redis-4.0.10/src ./redis-server ../redis.conf
启动哨兵
# 第一种 cd /usr/redis/redis-4.0.10/src ./redis-sentinel ../sentinel.conf # 第二种 ./redis-server ../sentinel.conf --sentinel # 以上两种方式,都必须指定一个配置文件sentinel.conf; # 如果不指定,将无法启动sentinel
查看集群状态
# 查看集群状态,必须使用ip 和port进行连接, 否者查询不了 ./redis-cli -h 172.168.3.166 -p 6381 -a root 172.168.3.166:6381> info Replication
检查是否安装成功(步骤)
主从复制的流程
参考流程图
原文:https://www.cnblogs.com/musl/p/13343298.html