Redis高可用集群方案——哨兵
本篇文章版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文系列地址http://www.cnblogs.com/tdws/tag/NoSql/
集群方案 三主三从 http://www.cnblogs.com/tdws/p/7710545.html
之前有篇文章,讲到了redis主从复制,读写分离。然而留下的问题是当主服务器挂了,我们就无法向客户端提供任何服务了呀,这样的方案,就不能称之为高可用方案。下面,提供一种Redis集群高可用方案,拙劣之处,欢迎指正和补充。
Redis为我们提供了哨兵,它就像一个为我们的Redis服务站岗的人,当主服务器发生异常时,他会通过投票的方式,将从服务节点升为主服务节点。当我们处理好主节点故障并重启时,原来挂掉的主节点,作为新的主节点的子节点。
为了在本机测试,首先我在6379,6380,6381节点上开启三个redis服务,6379做为master节点,6380和6381作为其从服务节点。关于主从的配置如果有疑问的话请看我的这篇文章http://www.cnblogs.com/tdws/p/5705782.html。
下面你需要再将redis文件夹机器内容复制出一份,我将其文件夹命名为Sentinel.
我们将其配置文件最后,增加如下配置信息。配置信息配置了哨兵端口5000,我们的redis客户端,比如C#的stackservice,stackExechange,可以从哨兵中读取当前集群情况,也就是说主挂后,我们客户端都可以获取到信息,并且从新的服务节点及端口中进行键值的操作。另外配置文件说到,主服务节点为6379,并且多个哨兵时,得到哨兵们的投票为1票时就认为主节点失联,可切换从节点为主。
down-after-milliseconds 指明尝试多少毫秒无反应,哨兵认为其失联。
parallel-sync指明当故障发生时,允许有多少个从节点,同时从新的主节点同步数据。这个配置意义在于,你这个值设置的越小,所有从节点同步时间也就越久,比如如下配置,每次只能同步一个,从节点越多,自然也就越久。那么这个值设置的大,或造成什么影响,这取决于我们的配置文件,我们可以配置在从同步主节点时,以旧的数据提供给客户端,在同步完成后,提供新数据,这样不会造成从节点同步期间不可用的情况。而然而,在同步完成后,需要删除旧的数据,加载新的数据,在这短暂的期间,还是会有从节点不可用的情况发生。
port
sentinel monitor mymaster 127.0.0.1
sentinel down-after-milliseconds mymaster
sentinel failover-timeout mymaster
sentinel parallel-syncs mymaster
下面就到了我们启动sentinel(哨兵)的时候了!
同样切换到Sentinel文件夹目录下,执行命令
这样一来,哨兵"观察站"启动了。
首先我们展示下正常情况,主从的复制以及读写情况。
上图主节点写入新键。下图在两个从节点读取数据。
接下来,我们看一下主节点挂掉之后,会发生什么。我将主节点服务关闭。
我们之前的只读从节点,现在已经升为可写的主节点了!
当然,想要做到高可用,哨兵也应该多个节点,有关更多哨兵命令,配置及其原理,下回分解。
如果我的点滴分享对您有点低帮助,欢迎点击下方红色关注,我将持续分享,共同进步
Redis高可用集群方案——哨兵的更多相关文章
- (六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)
参考并感谢 官方文档 https://hub.docker.com/_/redis GitHub https://github.com/antirez/redis happyJared https:/ ...
- Redis高可用集群方案
Redis为我们提供了哨兵,它就像一个为我们的Redis服务站岗的人,当主服务器发生异常时,他会通过投票的方式,将从服务节点升为主服务节点.当我们处理好主节点故障并重启时,原来挂掉的主节点,作为新的主 ...
- Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】
No cross,no crown . 不经历风雨,怎么见彩虹. Redis哨兵模式,用现在流行的话可以说就是一个"哨兵机器人",给"哨兵机器人"进行相应的配置 ...
- sentinel监控redis高可用集群(一)
一.首先配置redis的主从同步集群. 1.主库的配置文件不用修改,从库的配置文件只需增加一行,说明主库的IP端口.如果需要验证的,也要加多一行,认证密码. slaveof 192.168.20.26 ...
- 基于docker实现redis高可用集群
基于docker实现redis高可用集群 yls 2019-9-20 简介 基于docker和docker-compose 使用redis集群和sentinel集群,达到redis高可用,为缓存做铺垫 ...
- Redis 高可用集群
Redis 高可用集群 Redis 的集群主从模型是一种高可用的集群架构.本章主要内容有:高可用集群的搭建,Jedis连接集群,新增集群节点,删除集群节点,其他配置补充说明. 高可用集群搭建 集群(c ...
- activemq+Zookeper高可用集群方案配置
在高并发.对稳定性要求极高的系统中,高可用的是必不可少的,当然ActiveMQ也有自己的集群方案.从ActiveMQ 5.9开始,ActiveMQ的集群实现方式取消了传统的Master-Slave方式 ...
- Mycat节点扩缩容及高可用集群方案
数据迁移与扩容实践: 工具目前从 mycat1.6,准备工作:1.mycat 所在环境安装 mysql 客户端程序. 2.mycat 的 lib 目录下添加 mysql 的 jdbc 驱动包. 3.对 ...
- LVS+Heartbeat 高可用集群方案操作记录
之前分别介绍了LVS基础知识和Heartbeat基础知识, 今天这里简单说下LVS+Heartbeat实现高可用web集群方案的操作说明. Heartbeat 项目是 Linux-HA 工程的一个组成 ...
随机推荐
- git克隆项目到本地&&全局安装依赖项目&&安装依赖包&&启动服务
一.安装本地开发环境 1.安装本项目 在需要保存到本地的项目的文件夹,进入到文件夹里点击右键,bash here,出现下图: 2.安装依赖项目 3.安装依赖包(进入到命令行) # 安装依赖包 $ ...
- Spring中Bean的实例化
Spring中Bean的实例化 在介绍Bean的三种实例化的方式之前,我们首先需要介绍一下什么是Bean,以及Bean的配置方式. 如果 ...
- ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案
好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...
- jquery.each()
$(selector).each(function(index,element)) index - 选择器的 index 位置 element - 当前的元素(也可使用 "this" ...
- BPM配置故事之案例9-根据表单数据调整审批线路2
老李:好久不见啊,小明. 小明:-- 老李:不少部门有物资着急使用,现在的审批流程太慢了,申请时增加一个是否加急的选项吧.如果选加急,金额1000以下的直接到我这里,我审批完就通过,超过1000的直接 ...
- Android Butterknife 8.4.0 使用方法总结
转载请标明出处:http://www.cnblogs.com/zhaoyanjun/p/6016341.html 本文出自[赵彦军的博客] 前言 ButterKnife 简介 ButterKnife是 ...
- [Hadoop in Action] 第5章 高阶MapReduce
链接多个MapReduce作业 执行多个数据集的联结 生成Bloom filter 1.链接MapReduce作业 [顺序链接MapReduce作业] mapreduce-1 | mapr ...
- python selenium
https://segmentfault.com/a/1190000007249396?_ea=1293878
- 初尝Brnshop移植到Linux Mono Jexus环境运行
brnshop是最近社区上比较火的开源商城. Jexus是Linux上的web服务器,简单说就是Linux的iis吧.特别感谢作者宇内流云的指点 一.根据http://www.cnblogs.com/ ...
- UWP开发:APP之间的数据交互(以微信为例)
目录 说明 UWP应用唤醒方式 跟微信APP交互数据 APP之间交互数据的前提 说明 我们经常看到,在手机上不需要退到桌面,APP之间就可以相互切换,并且可以传递数据.比如我在使用知乎APP的时候,需 ...