从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)

第三阶段基础

时  间:2023年6月15日

参加人:全班人员

内  容:

Redis高可用集群

目录

一、redis主从复制原理介绍

主从复制特点:

主从复制实现原理:

二、主从复制实现操作(多机实例实现)  

前提配置:

主库操作:

从库一操作:

从库二操作:

主库变化:

验  证:

三、redis哨兵操作

主 库:

从库一:

从库二:

验证结果:


一、redis主从复制原理介绍

主从模式下,Redis 分为主库(master)从库(slaver)。主库负责读写,从库只负责读。当主库发生写事件后会将数据同步至从库。主库挂了不会重新选举主库,需等主库重启之后才能继续提供写服务,此间从库仍可提供读服务。

初始化阶段:从库启动后,向主库发送 Sync 命令,主库收到 Sync 命令后,生成 RDB 快照,并缓存生成快照期间的写命令,快照生成完后,发送至从库。从库收到后根据快照和缓存的写命令初始化数据库。

同步阶段:此阶段主库每次收到写命令都会将写命令发送至从库,从库执行写命令,保证数据一致性。

主从复制特点

一个master可以有多个slave

一个slave只能有一个master

数据流向是单向的,master到slave

主从复制实现原理

1.从库通过slaveof 192.168.1.107 6379命令连接主库,并发送sync给主库;

2.主库收到sync,立刻触发bgsave,后台保存RDB,发送给从库;

3.从库接受后会应用rdb快照;

4.主库会陆续将中间产生的新的操作,保存并发送给从库;

5.到此,我们主从复制就正常工作了;

6.之后,主库所有新的操作,都会以命令传播的方式自动发送给从库;

7.如果发生主从断开,从库数据没有任何破坏,重新连接后,从库发送psync给主库;

8.主库会将从库缺失的部分数据同步给从库应用,达到快速恢复主从的目的。

二、主从复制实现操作(机实例实现)  

在此演示的是yum安装方式,且对redis进行无密码设置

前提配置:

1、关闭防火墙

systemctl stop firewalld

iptables -F

setenforce 0

2、yum安装了redis

3、虚拟机网络模式为桥接模式

ip地址自动获取

主库操作:

步骤一:基础操作

  ip地址为192.168.1.107

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第1张图片

安装了redis

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第2张图片

步骤二:配置redis主配置文件/etc/redis.conf

bind 0.0.0.0

daemonize yes

port 6379

pidfile /var/run/redis_6379.pid

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第3张图片

步骤三:启动redis服务

redis-cli进入,查看当前主从复制信息

info replication

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第4张图片

从库一操作:

步骤一:基础操作

ip地址为192.168.1.108

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第5张图片

安装了redis

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第6张图片

步骤二:配置redis主配置文件/etc/redis.conf

bind 0.0.0.0

daemonize yes

port 6379

pidfile /var/run/redis_6379.pid

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第7张图片

步骤三:启动redis服务

redis-cli -p 6379 进入,查看当前主从复制信息

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第8张图片

操作slaveof 192.168.1.107 6379请看变化!!!

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第9张图片

从库二操作:

步骤一:基础操作

ip地址为192.168.1.14

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第10张图片

安装了redis

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第11张图片

步骤二:配置redis主配置文件/etc/redis.conf

bind 0.0.0.0

daemonize yes

port 6379

pidfile /var/run/redis_6379.pid

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第12张图片

步骤三:启动redis服务

redis-cli -p 6379进入,查看当前主从复制信息

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第13张图片

操作slaveof 192.168.1.107 6379请看变化!!!

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第14张图片

主库变化:

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第15张图片

 

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第16张图片

 

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第17张图片

验  证:

主库操作:有创建功能

set k1 HUYANG

get k1

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第18张图片

从库一:无创建功能

get k1

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第19张图片

从库二:无创建功能

get k1

三、redis哨兵操作

此处演示三台服务器都创建哨兵,均监视当前服务

步骤一:分别对主库、从库一、从库二的哨兵模式配置文件/etc/redis-sentinel.conf修改

主 库:

port 26379

daemonize yes

sentinel monitor mymaster 192.168.1.107 6379 2

其他操作默认不进行修改

从库一:

port 26379

daemonize yes

sentinel monitor mymaster 192.168.1.107 6379 2

其他操作默认不进行修改

从库二:

port 26379

daemonize yes

sentinel monitor mymaster 192.168.1.107 6379 2

其他操作默认不进行修改

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第20张图片

步骤二:分别启动主库、从库一、从库二的哨兵模式

systemctl start redis-sentinel

或者

systemctl restart redis-sentinel

步骤三:停止主库的redis服务查看变化

sysrenctl stop redis

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第21张图片

验证结果:

步骤一:停止主库的redis服务查看变化

sysrenctl stop redis

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第22张图片

步骤二:查看从库一的变化

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第23张图片

从库一最终结果:

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第24张图片

从库二变化:

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第25张图片

从库二最终结果:

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)_第26张图片

 

总  结:

开启redis哨兵模式之后;

主库的redis服务停止;

从库一:原本是1.107的从库,模式时间(30秒)到了之后,复制信息发生变化,主从复制过程停止,哨兵模式随机选择一台主机为服务器,最终选择了1.108这台服务器,也就是原本的从库一变成了主库;

从库二:原本是1.107从库,模式时间(30秒)到了之后,复制信息发生变化,主从复制过程停止,待哨兵模式选择完谁当服务器之后,变成了1.108的从库。

你可能感兴趣的:(java,数据库,redis)