Redis集群+哨兵模式安装配置

本文详细介绍了Redis集群的主从配置,哨兵机制及其工作原理,并提供了环境准备、安装步骤、启动方法和故障切换测试。通过哨兵监控,实现主服务器故障时自动提升从服务器为主,确保数据一致性。
摘要由CSDN通过智能技术生成

Redis集群+哨兵模式安装配置

redis主从介绍

主Redis写入数据时,从Redis会通过Redis Sync机制,同步数据,确保数据一致。并且Redis有哨兵(Sentinel)机制,Redis主挂掉会自动帮我们提升从为主

主从同步类型及哨兵介绍

一主(master)N从(slave)N+1哨兵(sentinel)的配置目标, 如下:
在这里插入图片描述
哨兵机制:
有了主从,那我们需要对其进行监控,Sentinel会不断地检查你的主服务器和从服务器是否运作正常。某个节点故障后,Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(Progress), 这些进程使用流言协议(Gossip Protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(Agreement Protocols)来决定是否执行自动故障迁移, 以及选择哪个从服务器作为新的主服务器。虽然 Redis Sentinel 释出为一个单独的可执行文件 redis-sentinel , 但实际上它只是一个运行在特殊模式下的 Redis 服务器

环境准备

搭建1主1从2哨兵

Redis:
主节点:192.168.35.201
从节点:192.168.35.202
端口使用6380

哨兵:
哨兵1:192.168.35.201
哨兵2:192.168.35.202
端口使用26379

安装redis

主备都要安装:
#创建redis目录
mkdir -p /home/redis
mkdir -p /home/redis/conf
mkdir -p /home/redis/logs
#下载4.0稳定版
wget http://download.redis.io/releases/redis-4.0.11.tar.gz
#解压到用户主目录
tar -xzvf redis-4.0.11.tar.gz -C /home/tools
#进入用户主目录
cd /home/tools/redis-4.0.11 redis
#编译
make
#安装,PREFIX指定安装路径
make PREFIX=/home/redis
#复制配置文件到redis目录
cp redis.conf sentinel.conf /home/redis/conf/

配置redis

主机:
redis.conf 修改以下配置
#绑定ip
bind 192.168.35.201
#保护模式(如设置为Yes则外网不能访问)
protected-mode no
#绑定端口
port 6380
#是否后台运行
daemonize yes
#日志文件路径
logfile “/home/redis/logs/redis.log”
#工作目录
dir “/home/redis/bin”
#主备机通讯密码
masterauth “test”
#访问鉴权密码
requirepass “test”

sentinel.conf修改以下配置(如没有则添加,与备机完全一致):
#保护模式(如设置为Yes则外网不能访问)
protected-mode no
#绑定端口
port 26379
#工作目录
dir “/home/redis/sentinel”
#日志文件路径
logfile “/home/redis/logs/sentinel.log”
#指定检查主机
sentinel monitor mymaster 192.168.35.201 6380 1
#指定授权密码
sentinel auth-pass mymaster test

备机:
redis.conf 修改以下配置
#绑定ip
bind 192.168.35.202
#保护模式(如设置为Yes则外网不能访问)
protected-mode no
#绑定端口
port 6380
#是否后台运行
daemonize yes
#日志文件路径
logfile “/home/redis/logs/redis.log”
#工作目录
dir “/home/redis/bin”
#主备机通讯密码
masterauth “test”
#访问鉴权密码
requirepass “test”
#指定主机(此配置只有备机有,主机没有)
slaveof 192.168.35.201 6380

sentinel.conf修改以下配置(如没有则添加,与主机完全一致):
#保护模式(如设置为Yes则外网不能访问)
protected-mode no
#绑定端口
port 26379
#工作目录
dir “/home/redis/sentinel”
#日志文件路径
logfile “/home/redis/logs/sentinel.log”
#指定检查主机
sentinel monitor mymaster 192.168.35.201 6380 1
#指定授权密码
sentinel auth-pass mymaster test

启动redis及哨兵

1, cd /home/redis/bin
2, 执行./redis-server …/conf/redis.conf
3, 查看logs目录下redis是否启动正常
在这里插入图片描述
4, 执行./redis-sentinel …/conf/sentinel.conf &
5, 查看logs目录下哨兵是否启动正常
在这里插入图片描述
6, 查看主机redis状态
在这里插入图片描述
在这里插入图片描述
7, 查看备机redis状态
在这里插入图片描述

测试主从同步

1, 杀死主机redis进程
在这里插入图片描述
2, 观察sentinel.log发现主机下线,自动将备机升级为主机
在这里插入图片描述
3, 查看备机redis状态发现已被切换为主机
在这里插入图片描述
4, 故障恢复,启动主机redis,查看主机redis状态
在这里插入图片描述
//因为主机的redis.conf在故障转移时被修改了,所以重启之后就直接成了slave

哨兵工作原理

查看各个哨兵的日志, 大抵可以看出哨兵的工作过程, 如下

1, 主观下线(sdown)

当某个哨兵心跳检测master超时后,则认定其sdown

+sdown master mymaster 172.31.175.142 6379

2, 客观下线(odown)

当认定sdown的哨兵数>=quorum时,则master下线事实最终成立,即odown

+odown master mymaster 172.31.175.142 6379 #quorum 2/2

3, 选举哨兵leader

各哨兵协商,选举出一个leader,由其进行故障转移操作

+vote-for-leader 1dd7873228b4bf30c1668d55a28b3036072ee9de 1

4, 故障转移

选择一个slave作为新的master, 并将其他节点设置为新master的slave (刚才已下线的老master的配置文件也会被设置slaveof…)

+switch-master mymas

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值