Redis为我们提供了哨兵,它就像一个为我们的Redis服务站岗的人,当主服务器发生异常时,他会通过投票的方式,将从服务节点升为主服务节点。当我们处理好主节点故障并重启时,原来挂掉的主节点,作为新的主节点的子节点。

为了在本机测试,首先我在6379,6380,6381节点上开启三个redis服务,6379做为master节点,6380和6381作为其从服务节点。关于主从的配置如果有疑问的话请看我的这篇文章https://www.cnblogs.com/tdws/p/5705782.html。

下面你需要再将redis文件夹机器内容复制出一份,我将其文件夹命名为Sentinel.

我们将其配置文件最后,增加如下配置信息。配置信息配置了哨兵端口5000,我们的redis客户端,比如C#的stackservice,stackExechange,可以从哨兵中读取当前集群情况,也就是说主挂后,我们客户端都可以获取到信息,并且从新的服务节点及端口中进行键值的操作。另外配置文件说到,主服务节点为6379,并且多个哨兵时,得到哨兵们的投票为1票时就认为主节点失联,可切换从节点为主。

down-after-milliseconds 指明尝试多少毫秒无反应,哨兵认为其失联。

parallel-sync指明当故障发生时,允许有多少个从节点,同时从新的主节点同步数据。这个配置意义在于,你这个值设置的越小,所有从节点同步时间也就越久,比如如下配置,每次只能同步一个,从节点越多,自然也就越久。那么这个值设置的大,或造成什么影响,这取决于我们的配置文件,我们可以配置在从同步主节点时,以旧的数据提供给客户端,在同步完成后,提供新数据,这样不会造成从节点同步期间不可用的情况。而然而,在同步完成后,需要删除旧的数据,加载新的数据,在这短暂的期间,还是会有从节点不可用的情况发生。

port 5000
sentinel monitor mymaster 127.0.0.1 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1

  

下面就到了我们启动sentinel(哨兵)的时候了!

同样切换到Sentinel文件夹目录下,执行命令

这样一来,哨兵"观察站"启动了。

首先我们展示下正常情况,主从的复制以及读写情况。

上图主节点写入新键。下图在两个从节点读取数据。

接下来,我们看一下主节点挂掉之后,会发生什么。我将主节点服务关闭。

我们之前的只读从节点,现在已经升为可写的主节点了!

Redis高可用集群方案的更多相关文章

  1. Redis高可用集群方案——哨兵

    本篇文章版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文系列地址http://www.cnblogs.com/tdws/tag/NoSql/ 本人之前有篇文章,讲到了redis主从复制,读写分 ...

  2. sentinel监控redis高可用集群(一)

    一.首先配置redis的主从同步集群. 1.主库的配置文件不用修改,从库的配置文件只需增加一行,说明主库的IP端口.如果需要验证的,也要加多一行,认证密码. slaveof 192.168.20.26 ...

  3. Redis 高可用集群

    Redis 高可用集群 Redis 的集群主从模型是一种高可用的集群架构.本章主要内容有:高可用集群的搭建,Jedis连接集群,新增集群节点,删除集群节点,其他配置补充说明. 高可用集群搭建 集群(c ...

  4. Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】

    No cross,no crown . 不经历风雨,怎么见彩虹. Redis哨兵模式,用现在流行的话可以说就是一个"哨兵机器人",给"哨兵机器人"进行相应的配置 ...

  5. 基于docker实现redis高可用集群

    基于docker实现redis高可用集群 yls 2019-9-20 简介 基于docker和docker-compose 使用redis集群和sentinel集群,达到redis高可用,为缓存做铺垫 ...

  6. (六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)

    参考并感谢 官方文档 https://hub.docker.com/_/redis GitHub https://github.com/antirez/redis happyJared https:/ ...

  7. activemq+Zookeper高可用集群方案配置

    在高并发.对稳定性要求极高的系统中,高可用的是必不可少的,当然ActiveMQ也有自己的集群方案.从ActiveMQ 5.9开始,ActiveMQ的集群实现方式取消了传统的Master-Slave方式 ...

  8. Mycat节点扩缩容及高可用集群方案

    数据迁移与扩容实践: 工具目前从 mycat1.6,准备工作:1.mycat 所在环境安装 mysql 客户端程序. 2.mycat 的 lib 目录下添加 mysql 的 jdbc 驱动包. 3.对 ...

  9. LVS+Heartbeat 高可用集群方案操作记录

    之前分别介绍了LVS基础知识和Heartbeat基础知识, 今天这里简单说下LVS+Heartbeat实现高可用web集群方案的操作说明. Heartbeat 项目是 Linux-HA 工程的一个组成 ...

随机推荐

  1. Codeforces Round #483 (Div. 2) B. Minesweeper

    题目地址:http://codeforces.com/contest/984/problem/B 题目大意:扫雷游戏,给你一个n*m的地图,如果有炸弹,旁边的八个位置都会+1,问这幅图是不是正确的. ...

  2. Windows下升级Zabbix Agent

    这段时间因工作上不太忙,就着手升级下zabbix,从3升级到最新版4.2,服务器端升级还挺快,就是客户端比较耗时了,往往就是看的越简单的东西越耗时间啊. Windows版本的zabbix agent下 ...

  3. Web框架之Gin

    Gin是一个用Go语言编写的web框架.它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍. 如果你是性能和高效的追求者, 你会爱上Gin. ...

  4. Mybatis 分页查询

    该篇博客记录采用pagehelper分页插件实现Mybatis分页功能 一.依赖 pom.xml <!-- pagehelper --> <dependency> <gr ...

  5. “真”pandas“假”sql

    这篇博客利用了 pandas 对数据像 sql 一样去处理. 读取测试数据 import pandas as pd import numpy as np url = 'https://raw.gith ...

  6. Python—字符串和常用数据结构

    目录 1. 字符串 2. 列表 2.1 列表的增删改查 2.2 列表的切片和排序 2.3 生成式语法 3. 元组 4.集合 5. 字典 5.1 字典的增删改查 5.2 字典的常见操作 序言:这一章我们 ...

  7. Qt疑难问题-模态窗口父类被析构

    最近遇到一个朋友,问了我一个刁钻的问题,当你模态弹出一个窗体时,后台把这个窗体的父类给析构了,这个时候会出现什么样的情况? 听到问题后我真是一脸懵逼呀!从来没有这么写过代码. 随后写了一个简单的测试d ...

  8. Day 15 文件打包与压缩

    1.什么是文件压缩? 将多个文件或目录合并成为一个特殊的文件.比如: 搬家...脑补画面 img. 2.为什么要对文件进行压缩? 当我们在传输大量的文件时,通常都会选择将该文件进行压缩,然后在进行传输 ...

  9. Django中自定义模型管理器(Manager)及方法

    1.自定义管理器(Manager) 在语句Book.objects.all()中,objects是一个特殊的属性,通过它来查询数据库,它就是模型的一个Manager.每个Django模型至少有一个ma ...

  10. Anaconda、TensorFlow安装和Pycharm配置详细教程,亲测有效!

    目录 1.Anaconda下载与安装 2.Anaconda安装成功与否测试 3.安装python 4.检查TensorFlow环境添加成功与否 5.TensorFlow安装 6.测试TensorFlo ...