本文介绍: ①单点故障数据存储一台服务器上,服务器出现故障就会导致数据丢失。所以我们需要数据复制多份部署在多台不同的服务器上,在配置文件指定这几台 redis 之间的主从关系。②主从复制:多台 redis 服务器数据同步功能,主服务器master负责写入数据,同时把写入数据实时同步到从(slave机器,从服务器负责读当 Master 服务出现故障,需手动slave 中的一个提升为 master, 剩下的 slave 挂至新的master 上(冷处理机器挂掉了,再处理

第一章、主从复制模式

1.1)Redis 主从复制模式介绍

①单点故障数据存储一台服务器上,服务器出现故障就会导致数据丢失。所以我们需要将数据复制多份部署在多台不同的服务器上,在配置文件指定这几台 redis 之间的主从关系

主从复制多台 redis 服务器的数据同步功能,主服务器(master)负责写入数据,同时把写入的数据实时同步到从(slave机器,从服务器负责读
当 Master 服务出现故障,需手动slave 中的一个提升为 master, 剩下的 slave 挂至新的master 上(冷处理机器挂掉了,再处理

1.2)Redis 主从复制实现

修改配置文件启动时,服务器读取配置文件,并自动成为指定服务器的从服务器,从而构成主从复制关系
①如果 Redis 启动,先停止,模拟多 Reids 服务器,从原有的 redis.conf 配置文件拷贝三份,分别命名redis6380.conf, redis6382.conf , redis6384.conf
在这里插入图片描述
编辑作为 Master配置文件 redis6380.conf : 在空文件加入如下内容

#包含原来的配置文件内容/usr/local/redis-3.2.9/redis.conf 按照自己目录设置include /usr/local/redis-3.2.9/redis.conf daemonize yes port 6380 
pidfile /var/run/redis_6380.pid 
logfile 6380.log 
dbfilename dump6380.rdb 

配置说明
include包含原来的配置文件内容。/usr/local/redis-3.2.9/redis.conf 按照自己目录设置
daemonizeyes 后台启动应用,相当于 ./redisserver & , &的作用。
port : 自定义端口号
pidfile : 自定义的文件,表示当前程序pid ,进程 id
logfile日志文件名
dbfilename持久化的 rdb 文件
编辑作为 Slave服务器的配置文件redis6382.conf 和 redis6384.conf: 在空文件加入如下内容

#①:redis6382.conf中加入include /usr/local/redis-3.2.9/redis.conf daemonize yes port 6382 
pidfile /var/run/redis_6382.pid 
logfile 6382.log 
dbfilename dump6382.rdb 
slaveof 127.0.0.1 6380 
#②:redis6384.conf中加入include /usr/local/redis-3.2.9/redis.conf daemonize yes port 6384 
pidfile /var/run/redis_6384.pid 
logfile 6384.log 
bfilename dump6384.rdb 
slaveof 127.0.0.1 6380 

配置说明: slaveof : 表示当前 Redis 是谁的从。当前是 127.0.0.1 端口 6380 这个 Master 的从服务器。

使用配置文件方式启动redis,并查看启动进程
在这里插入图片描述
使用指定端口连接 Redis 服务器,查看配置后的服务信息

./redis-cli -p 端口

在这里插入图片描述
查看6380端口的服务器信息

info replication 

在这里插入图片描述
在新的 Xshell 窗口分别登录到 6382 ,6384 查看信息
在这里插入图片描述
⑥向 Master 写入数据,先执行 flushall 清除数据,避免干扰到测试数据。 生产环境谨慎使用
在这里插入图片描述
⑦在从服务器 Slave 读数据,可以读主 Master 的数据,不能写
在这里插入图片描述
Slave 写数据失败
在这里插入图片描述

第二章、哨兵机制

2.1)容灾处理哨兵

Sentinel 哨兵redis 官方提供的高可用方案监控多个 Redis 服务实例运行情况。
Sentinel 系统一个运行特殊模式下的 Redis 服务器。Redis Sentinel 是在多个 Sentinel 进程环境下互相协作工作的。

Sentinel 系统有三个主要任务
监控:Sentinel 不断的检查主服务和从服务器是否按照预期正常工作
提醒:被监控的 Redis 出现问题时,Sentinel 会通知管理员或其他应用程序
自动故障转移:监控的主 Redis 不能正常工作,Sentinel 会开始进行故障③迁移操作。将一个从服务器升级新的主服务器。 让其他从服务器挂到新的主服务器。同时向客户端提供新的主服务器地址
在这里插入图片描述

2.2)Sentinel 配置

复制三份sentinel.conf文件
在这里插入图片描述
Sentinel系统默认 port 是26379 。三个配置port分别设置为 26380 , 26382 , 26384 。三个文件分别命名:
sentinel26380.conf
sentinel26382.conf
sentinel26384.conf
执行复制命令 cp sentinel.conf xxx.conf
在这里插入图片描述
②三份 sentinel 配置文件修改
sentinel26380.conf
1、修改 port
在这里插入图片描述
2、修改监控master 地址 6382
在这里插入图片描述
sentinel26382.conf 文件同样修改
port 26382
master的port :6382
sentinel26384.conf 文件同样修改
port 26384
master的port :6382

③启动主从(Master/Slave)Redis
启动 Reids
在这里插入图片描述
查看 Master 的配置信息连接到 6382 端口
在这里插入图片描述
使用 info 命令查看 Master/Slave
在这里插入图片描述
④启动 Sentinel模式下的Redis服务实例

在 XShell 开启三个窗口分别执行命令,将创建三个监视主服务器的Sentinel实例
./redis-sentinel …/sentinel26380.conf
./redis-sentinel …/sentinel26382.conf
./redis-sentinel …/sentinel26384.conf
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
⑤让主 Redis 不能工作

让 Master 的 Redis 停止服务, 先执行 info replication 确认 Master 的 Redis 后再执行 shutdown

在这里插入图片描述
查看当前 Redis 的进程情况

在这里插入图片描述
⑥Sentinel 的起作用

在 Master 执行 shutdown 后, 稍微等一会 Sentinel 要进行投票计算,从可用的 Slave
选举新的 Master。查看 Sentinel 日志
在这里插入图片描述
查看新的 Master
在这里插入图片描述
查看原 Slave 的变化

在这里插入图片描述
⑦新的 Redis 加入 Sentinel 系统,自动加入 Master

重新启动 6382
在这里插入图片描述
查看 6384 的信息
在这里插入图片描述
测试数据:在 Master 写入数据
在这里插入图片描述
在 6382 上读取数据,不能写入
在这里插入图片描述

监控
1)Sentinel 会不断检查 Master 和 Slave 是否正常
2)如果 Sentinel 挂了,就无法监控,所以需要多个哨兵,组成 Sentinel 网络一个健康
Sentinel 至少有 3 个 Sentinel 应用。 彼此在独立的物理机器虚拟机
3)监控一个 Master 的 Sentinel 会自动连接,组成一个分布式的 Sentinel 网络,互相通信交换彼此关于被监控服务器的信息
4)当一个 Sentinel 认为被监控的服务器已经下线时,它会向网络中的其它 Sentinel 进行确认,判断该服务器是否真的已经下线
5)如果下线的服务器为主服务器,那么 Sentinel 网络将对下线主服务器进行自动故障转移,通过将下线主服务器的某个从服务器提升为新的主服务器,并让其从服务器转移到新的主服务器下,以此来让系统重新回到正常状态
6)下线的旧主服务器重新上线,Sentinel 会让它成为从,挂到新的主服务器下

原文地址:https://blog.csdn.net/baomingshu/article/details/134735577

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_23164.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注