广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Redis哨兵机制及配置实现
  • 673
分享到

Redis哨兵机制及配置实现

2024-04-02 19:04:59 673人浏览 泡泡鱼
摘要

目录一、为什么 Redis 集群中要有哨兵机制二、模拟主机挂掉之后,人工切换三、哨兵机制的原理四、哨兵机制的实现一、为什么 Redis 集群中要有哨兵机制 Redis 主从复制有一个

一、为什么 Redis 集群中要有哨兵机制

Redis 主从复制有一个缺点,当 master 宕机以后,整个集群的写就会挂掉。因为 redis 本身是不会自动从 slave 中选举出新的 master 的。

我们理想的情况是:当 master 挂掉之后,可以有 slave 迅速补上,自动切换为 master,不影响整个服务。

基于此,引入了 Redis Sentinel(Redis 哨兵机制)。

它能够在 master 挂掉之后,自动从 多台 slave 中选举出 新的 master,迅速开始工作,省去了人工切换的麻烦,实现了 redis 的高可用

二、模拟主机挂掉之后,人工切换

1、环境介绍

这里有四台 redis,分别的 ip 是:

master:172.10.0.2
 
slave1:172.10.0.3
slave2:172.10.0.4
slave3:172.10.0.5

2、将原来的 master 挂掉

通过 netstat -anp|grep 6379 命令找到 master 的 pid,然后 kill 掉。

去几个 slave 中查询 info replication,会发现,master 的状态已经是 down

3、人工将一个 slave 选举成为新的 master

选择 slave2 成为 新的 master:

(1)去 slave2 客户端执行 slave no one命令

该命令会将 slave2 和原来的 master 的主从关系断掉,重新使自己成为 master(当然,这个 master 下没有一个 slave )

(2)到其他两个 slave 执行 slaveof 172.10.0.4 6379 或配置slaveof

注意 requirepass、masterauth、bind 的配置,并重启、重新加载配置文件,否则可能会不生效。

虽然人工方式也可以实现切换,但难免会碰到

‘到底选举哪一个为 master’, 
‘如果再断了又要重新配置’,
‘如果有其他事情耽误了,没来得及配置,会有很长一段时间无法提供服务’等问题,

因此,哨兵机制就变得十分有必要。

三、哨兵机制的原理

Redis Sentinel 是一个分布式架构,其中包含若干个 Sentinel 节点和 Redis 数据节点,每个 Sentinel 节点会对数据节点和其余 Sentinel 节点进行监控,当它发现节点不可达时,会对节点做下线标识。

哨兵集合监控redis主从是否正常运行。

如果挂掉的是从节点,则哨兵集合会将这个从节点做下线标识;

如果挂掉的是主节点,则哨兵集合不仅会对主节点做下线标识,而且还会所有哨兵进行"协商”,选举出新的主节点,来完成自动故障转移工作。原来的主节点恢复正常后,会变成新的主节点的从节点。

整个过程完全是自动的,不需要人工接入。

四、哨兵机制的实现

1、创建三个redis-sentinel,构成一个哨兵集合

Docker run -itd --name  redis-sentinel-1 --privileged  --net haveyb-network  -p 6384:6379  --ip 172.10.0.6  docker-test
 
docker run -itd --name  redis-sentinel-2 --privileged  --net haveyb-network  -p 6385:6379  --ip 172.10.0.7  docker-test
 
docker run -itd --name  redis-sentinel-3 --privileged  --net haveyb-network  -p 6386:6379  --ip 172.10.0.8  docker-test

注:--net haveyb-network为指定自定义网络

2、使用 docker ps -a 命令查看当前创建的容器

3、分别进入新建的三个 sentinel 的每一个容器

docker exec -it redis-sentinel-3 bash

4、修改 net.core.somaxconn的值

vi /etc/sysctl.conf 

(1)添加下面一行代码:

net.core.somaxconn = 32768

(2)加载

sysctl -p

5、修改 redis.conf

vi /etc/redis.conf

(1)修改参数 bind 127.0.0.1 为 0.0.0.0

bind 0.0.0.0

(2)设置 redis 密码

requirepass YourPassWordSettings

(3)加载配置文件

redis-server /etc/redis.conf &

6、修改新建的三台 redis-sentinel 的 redis-sentinel.conf

vi /etc/redis-sentinel.conf

(1)修改 # bind 127.0.0.1 192.168.1.1 为 bind 0.0.0.0

bind 0.0.0.0

(2)删除这一行代码

sentinel monitor mymaster 127.0.0.1 6379 2

这一行代码是redis默认给的(没有注释掉的),我们后面自己配置,所以直接删除掉,也会避免之后由于顺序造成的问题。

(3)添加下面代码

sentinel monitor mymaster 172.10.0.2 6379 2
 
sentinel auth-pass mymaster yourPasswordSettings
 
sentinel down-after-milliseconds mymaster 3000

解释:

第一行代码:

监控的主节点的名字(可以任意起,这里就起为 master)、IP 和端口,最后一个 2 的意思是有几台 Sentinel 发现有问题,就执行故障转移。一般这个数字设置为 Sentinel 节点数的一半加1。

不过这里建议把名字就起为 mymaster(默认的就是这个),因为如果起成别的名字,还需要对应改好几处地方。

第二行代码:

是填写连接的master的名字和密码,这里名字就用的默认的mymaster,密码要填写master的密码,我这里都设置成一样的了。

第三行代码

是设置每隔多长时间进行心跳检测,这里设置成3秒

7、分别在三台新建的redis-sentinel加载哨兵配置文件

redis-sentinel /etc/redis-sentinel.conf &

8、验证是否配置成功

如果出现下图类似内容,则说明配置哨兵成功

注:移除某个哨兵对master的监控,在哨兵中执行命令

sentinel remove mastername

到此这篇关于Redis 哨兵机制及配置实现的文章就介绍到这了,更多相关Redis 哨兵机制内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Redis哨兵机制及配置实现

本文链接: https://www.lsjlt.com/news/143964.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis哨兵机制及配置实现
    目录一、为什么 Redis 集群中要有哨兵机制二、模拟主机挂掉之后,人工切换三、哨兵机制的原理四、哨兵机制的实现一、为什么 Redis 集群中要有哨兵机制 Redis 主从复制有一个...
    99+
    2022-11-13
  • Redis Sentinel哨兵模式的原理及配置
    这篇文章主要介绍“Redis Sentinel哨兵模式的原理及配置”,在日常操作中,相信很多人在Redis Sentinel哨兵模式的原理及配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2022-10-18
  • Redis哨兵机制总结与实践
    ...
    99+
    2015-01-15
    Redis哨兵机制总结与实践
  • Nginx代理Redis哨兵主从配置的实现
    目录一、环境二、配置2.1、方案一(推荐)2.2、方案二2.3、方案三一、环境 Nginx版本:1.21.6Center7.5及以上或Mas OS搭建Redis哨兵主从模式Springboot集成Redis哨兵主从模式 提示:Nginx必须...
    99+
    2022-09-23
  • Redis6主从复制及哨兵机制的实现
    目录Redis 主从复制什么是主从复制主从配置主Redis配置从Redis配置实现原理Redis 哨兵机制简介哨兵进程的作用故障判定原理分析自动故障迁移案例演示Redis 主从复制 ...
    99+
    2022-11-13
  • Redis6 主从复制及哨兵机制的实现
    目录Redis 主从复制什么是主从复制主从配置主Redis配置从Redis配置实现原理Redis 哨兵机制简介哨兵进程的作用故障判定原理分析自动故障迁移案例演示Redis 主从复制 什么是主从复制 如果单机情况下,机器重...
    99+
    2022-07-26
    Redis6主从复制 Redis6 哨兵机制
  • Nginx代理Redis哨兵主从配置怎么实现
    本篇内容介绍了“Nginx代理Redis哨兵主从配置怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、环境Nginx版本:1.21....
    99+
    2023-07-02
  • redis的密码验证,及哨兵的相关配置
    背景    我们知道,redis默认是不配置密码的,这就造成只要有redis的IP+Port就可以无需验证,登陆redis。如果恰巧你的redis是开放在公网上的,很容易就被******...
    99+
    2022-10-18
  • Docker下Redis集群(主从+哨兵)安装配置的实现步骤
    目录一、所有机器拉去镜像二、主从集群搭建2.1、redis.cong 文件2.2、创建本地映射文件夹,并将 Redis.conf 放到 /usr/local/redis/conf 文件夹内2.3、启动redis2.4、校...
    99+
    2022-07-11
    Docker Redis集群配置 Docker Redis 主从 哨兵
  • Redis单机安装和哨兵模式集群安装的实现
    目录前言:1、Redis单机版安装1.1:下载安装包1.2:解压安装包1.3:执行make命令,编译redis代码1.4:安装并指定安装目录1.5:配置环境变量1.6:让redis作...
    99+
    2022-11-13
  • Redis 单机安装和哨兵模式集群安装的实现
    目录前言:1、Redis单机版安装1.1:下载安装包1.2:解压安装包1.3:执行make命令,编译redis代码1.4:安装并指定安装目录1.5:配置环境变量1.6:让redis作为服务进行后台启动1.7:redis关...
    99+
    2022-07-10
    Redis单机安装 Redis哨兵模式集群安装
  • Redis单机安装和哨兵模式集群安装怎么实现
    这篇文章主要讲解了“Redis单机安装和哨兵模式集群安装怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis单机安装和哨兵模式集群安装怎么实现”吧!1、Redis单机版安装1.1...
    99+
    2023-07-02
  • Redis连接池配置及初始化实现
    加入db选择后的redis连接池配置代码 public class RedisPoolConfigure { //Redis服务器IP private String ADD...
    99+
    2022-11-12
  • 怎么实现Redis集群机制及Redis架构演进
    这篇文章主要介绍“怎么实现Redis集群机制及Redis架构演进”,在日常操作中,相信很多人在怎么实现Redis集群机制及Redis架构演进问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2022-10-18
  • redis中事务机制及乐观锁的实现
    Redis事务机制 在MySQL等其他数据库中,事务表示的是一组动作,这组动作要么全部执行,要么全部不执行。   Redis目前对事物的支持相对简单。Redis只能保证一个client发起的事务中的命令可...
    99+
    2022-06-04
    乐观 机制 事务
  • Ubuntu安装、配置Redis及phpredis扩展怎么实现
    这篇文章主要介绍“Ubuntu安装、配置Redis及phpredis扩展怎么实现”,在日常操作中,相信很多人在Ubuntu安装、配置Redis及phpredis扩展怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对...
    99+
    2023-07-04
  • MySql主从复制实现原理及配置
    数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。对于MySQL来说,标准的读写分离是主从模式,一个写节点Master后面跟着多个读节点,读节点的数量取决于系统的压力,通常是1-3个...
    99+
    2022-05-18
    MySql 主从复制
  • Redis中主键失效的原理及实现机制剖析
    作为一种定期清理无效数据的重要机制,主键失效存在于大多数缓存系统中,Redis 也不例外。在 Redis 提供的诸多命令中,EXPIRE、EXPIREAT、PEXPIRE、PEXPIREAT 以及 SETE...
    99+
    2022-06-04
    主键 原理 机制
  • nodejs redis 发布订阅机制封装实现方法及实例代码
    nodejs redis 发布订阅机制封装 最近项目使用redis,对publish 和 subscribe的使用进行了了解,并进行了封装。 var config = require('../con...
    99+
    2022-06-04
    实例 机制 代码
  • 如何下载POSTGRESQL源码安装包及实现主机配置
    这篇文章将为大家详细讲解有关如何下载POSTGRESQL源码安装包及实现主机配置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、下载POSTGRESQL源码安装包及主机...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作