Redis7搭建主从+哨兵通俗易懂
背景前提–用到的命令
ps -ef |grep redis
redis服务器启动(精确启动配置文件位置)
redis-server redis6379.conf
redis-server redis6380.conf
redis-server redis6381.conf
redis客户端登录
redis-cli -a 123456 -p 6379
redis-cli -a 123456 -p 6380
redis-cli -a 123456 -p 6381
redis客户端登录后查看角色 master/slave
info replication
redis如何关闭服务器
redis登录客户端后 输入 shutdown
redis退出客户端但不关闭服务器 quit
哨兵启动
redis-sentinel sentinel26379.conf --sentinel
redis-sentinel sentinel26380.conf --sentinel
redis-sentinel sentinel26381.conf --sentinel
哨兵关闭
redis-cli -p 26379 shutdown
redis-cli -p 26380 shutdown
redis-cli -p 26381 shutdown
背景前提1
安装支持 文件导入命令 rz 然后解压 tar -zxvf redis-7.0.10.tar.gz
将解压在 /opt 目录下redis-7.0.10文件
背景前提2拷贝文件至redis-7.0.10的新建目录myredis下,主机从机步骤一致
拷贝命令 cp redis.conf /myredis
redis支持哨兵 sentinel、集群cluster
背景前提3—主机master
背景前提4—从机2为例
背景前提5-- 关闭虚拟机之间的防火墙
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
添加 :firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入: firewall-cmd --reload
查看: firewall-cmd --zone= public --query-port=80/tcp
删除: firewall-cmd --zone= public --remove-port=80/tcp --permanent
背景前提5—主机和从机以及哨兵理论上需要6台虚拟机
1、redis主机和从机ip 和端口
主机master ip和端口 192.168.154.128 6379
从机slave1 ip和端口 192.168.154.129 6380
从机slave2 ip和端口 192.168.154.130 6381
2、主机master修改配置文件
工作目录是在根目录下 即创建myredis是 要 mkdir /myredis 否则报错 dir /myredis
daemonize yes
#bind 127.0.0.1 -::1
protected-mode no
port 6379
#工作目录是在根目录下 即创建myredis是 要 mkdir /myredis 否则报错
dir /myredis
pidfile /var/run/redis_6379.pid
# 日志目录
logfile "/myredis/6379.log"
requirepass "123456"
#redis数据库保存文件地址 在工作目录的下边
dbfilename dump6379.rdb
appendonly yes
masterauth "123456"
3、从机slave1配置文件
—slave1从机replicaof配置----这个配置内容会当主机挂掉,会被动态注释掉或者清除
daemonize yes
#bind 127.0.0.1 -::1
protected-mode no
port 6380
#工作目录
dir /myredis
pidfile /var/run/redis_6380.pid
logfile "/myredis/6380.log"
requirepass "123456"
dbfilename dump6380.rdb
# 开启 aof (可选操作)
appendonly no
---slave1从机配置----这个配置内容会当主机挂掉,这个replicaof会被动态注释掉或者清除
replicaof 192.168.154.128 6379 #拜主机码头
masterauth "123456" //登录主机密码校验
4、从机slave2配置文件
daemonize yes
#bind 127.0.0.1 -::1
protected-mode no
port 6381
#工作目录
dir /myredis
pidfile /var/run/redis_6381.pid
# 日志目录
logfile "/myredis/6381.log"
requirepass "123456"
dbfilename dump6381.rdb
appendonly no
---slave2从机配置----
replicaof 192.168.154.128 6379 #拜主机码头
masterauth "123456" //登录主机密码校验
5、哨兵部署在虚拟机主机上
5、1哨兵1–sentinel26379
bind 0.0.0.0
daemonize yes
protected-mode no
port 26379
# 日志目录
logfile "/myredis/sentinel26379.log"
pidfile /var/run/redis-sentinel26379.pid
dir /myredis
sentinel monitor mymaster 192.168.154.128 6379 2
sentinel auth-pass mymaster 123456
5、2哨兵1–sentinel26380
bind 0.0.0.0
daemonize yes
protected-mode no
port 26380
logfile "/myredis/sentinel26380.log"
pidfile /var/run/redis-sentinel26380.pid
dir "/myredis"
sentinel monitor mymaster 192.168.154.128 6379 2
sentinel auth-pass mymaster 123456
5、3哨兵1–sentinel26381
bind 0.0.0.0
daemonize yes
protected-mode no
port 26381
logfile "/myredis/sentinel26381.log"
pidfile /var/run/redis-sentinel26381.pid
dir "/myredis"
sentinel monitor mymaster 192.168.154.128 6379 2 #这个2是投票数
sentinel auth-pass mymaster 123456
6、启动顺序
6.1先启动主机master 再启动从机1 和从机2
6.2然后在分别启动哨兵1、2、3
7、如何查看当前redis角色
7.1 客户端登录
redis-cli -a 123456 -p 6379
7.2 查看角色
info replication
7.3从机查看角色 role 是slave
观察slave与主机master连接状况 master_link_status:up 才可以
7.4查看哨兵 日志
cat sentinel26379.log
8、当主机master 模拟宕机shutdown
哨兵会从从机slave中选举出主机,
从机变成主机,原来的主机master会被哨兵变成从机,角色
1、主机shutdown
2、原来的主机重新启动,客户端登录发现角色变为slave
3、从机slave1变为master
4、当原来的主机192.168.154.128重新启动后,会跟着slave1喊大哥了,
5、通过哨兵日志观察这些角色的变化过程
在myredis目录下查看已经配置好哨兵日志 输入命令 cat sentinel26379.log
6、当主机master宕机,哨兵推举主机的过程
9、观察 redis.conf配置文件的尾部内容(哨兵追加的内容)
1、vim redis6380.conf
2、观察原来的主机master角色变为slave后被哨兵追加的内容
1、vim redis6379.conf
2、观察 replicationof 192.168.154.129 6380 现在跟随原来的slave1了
3、监控和选举并更换主机监控
变化
10 当slave变为主机后,然后再宕机,然后又选举出新的master
11 查看哨兵日志