一、哨兵的介绍

哨兵(sentinal)是redis集群架构中非常重要的一个组件,主要功能如下:

  1. 集群监控,负责监控redis master和slave进程是否正常工作
  2. 消息通知,如果某个redis实例故障,哨兵负责发送消息通知给管理员
  3. 故障转移,如果master node 挂掉了,会自动转移slave node
  4. 配置中心,如果故障转移发生了,通知client客户端新的master地址

哨兵的核心知识:

  1. 哨兵集群至少三个实例

    假设两个哨兵的集群下,Configuration: quorum = 1 (配置需要1个哨兵认为master宕机),主备切换还需一个条件majority (大多数哨兵是运行的),如果两个哨兵主机所在的机器宕机了,则剩下一个哨兵实例,则不满足大多数哨兵是运行的这个条件

  2. 哨兵+redis主从架构,是保证不了数据零丢失, 只能保证redis集群的高可用

二、哨兵集群环境搭建

# mkdir /etc/sentinel
# mkdir -p /var/sentinel/5000
# mkdir -p /var/log/sentinal/5000
# cp /usr/local/redis-3.2.8/sentinel.conf /etc/sentinel
# mv /etc/sentinel/sentinel.conf /etc/sentinel/5000.conf # vi /etc/sentinel/5000.conf
## 修改
port 5000
bind 192.168.27.11 ## 当前机器的ip地址
dir /var/sentinel/5000
sentinel monitor mymaster 192.168.27.11 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1
logfile /var/log/sentinel/5000/sentinel.log ## 启动哨兵进程
# redis-sentinel /etc/sentinel/5000.conf
# redis-server /etc/sentinel/5000.conf --sentinel ## 检查哨兵状态
# redis-cli -h 192.168.27.11 -p 5000
> sentinel master mymaster
> sentinel slaves mymaster
> sentinel sentinels mymaster
> sentinel get-master-addr-by-name mymaster

三、高可用容灾演练测试

强制停掉主节点的redis

# ps -ef|grep redis
# kill -9 进程号
# rm -rf /var/run/redis_6379.pid ## 查看哨兵监控日志
# cat /var/log/sentinel/5000/sentinel.log ## 查看当前的master节点
# redis-cli -h 192.168.27.11 -p 5000
> sentinel get-master-addr-by-name mymaster

redis哨兵集群环境搭建的更多相关文章

  1. Redis 快速集群环境搭建

    环境 Linux :centos 7 redis:redis-5.0.9 Redis 集群环境搭建步骤 早期 redis 版本集群环境搭建需要安装 ruby 运行环境,搭建步骤比较繁琐: redis ...

  2. Redis之集群环境搭建

    前面文章介绍了Redis的主从复制,虽然该模式能够在一定程度上提高系统的稳定性,但是在数据访问量比较大的情况下,单个master应付起来还是比较吃力的,这时我们可以考虑将redis集群部署,本文就来重 ...

  3. Redis集群环境搭建实践

    0 Redis集群简介 Redis集群(Redis Cluster)是Redis提供的分布式数据库方案,通过分片(sharding)来进行数据共享,并提供复制和故障转移功能.相比于主从复制.哨兵模式, ...

  4. Redis与Redis 伪集群环境的搭建

    一 .准备工作 GCC编译环境 ruby运行环境 安装ruby脚本运行包 二.环境安装 1.GCC环境 首先,因为redis是由C语言编写的,所以需要安装GCC环境,可以用 gcc -v 命令来检查是 ...

  5. Docker 搭建 Redis Cluster 集群环境

    使用 Docker 搭建 Redis Cluster,最重要的环节就是容器通信的问题,这一块我们在之前的文章中已经给大家解决了<Docker 网络模式详解及容器间网络通信>,本篇文章主要练 ...

  6. Docker Compose 搭建 Redis Cluster 集群环境

    在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...

  7. redis哨兵集群搭建

    下载redis jar包redis-4.0.11.tar.gz放在/data/redis目录下 解压 命令:tar -zxvf redis-4.0.11.tar.gz 解压后如图所示 在/usr/lo ...

  8. 【Redis哨兵集群】

    目录 开始配置主从复制 开始配置Redis Sentinel @ *** 在开始之前,我们先来看看Redis的主从复制 主从复制原理: 从服务器向主服务器发送SYNC命令. 主服务器接到SYNC命令后 ...

  9. Linux - redis哨兵集群实例

    目录 Linux - redis哨兵集群实例 命令整理 配置流程 Linux - redis哨兵集群实例 命令整理 官网地址:http://redisdoc.com/ redis-cli info # ...

随机推荐

  1. vbs解析 JSON格式数据

    Function jsonParser(str,jsonKey) Set sc = CreateObject("MSScriptControl.ScriptControl") sc ...

  2. etf基金和lof基金区别

    ①,含义不同.etf即交易指数开放基金,是跟踪某一指数的可以在交易所上市的开放式基金.lof基金是上市向开放基金,是中国首创的一种基金类型,也是etf基金的中国化.②,申购赎回的场所不同.etf和lo ...

  3. php接口 接受ios或android端图片; php接收NSData数据

    备注下, [自己无意中用的方法]接收时,设置两个参数,一个是图片名称,另一个是实际文件.然后用$_FILES处理就可以了. 如: $icon = $_POST['icon'];//这个是图片的名称,用 ...

  4. 编译时:virtual memory exhausted: Cannot allocate memory,常见于VPS

    原文链接:http://blog.csdn.net/taiyang1987912/article/details/41695895 一.问题 当安装虚拟机时系统时没有设置swap大小或设置内存太小,编 ...

  5. C#时间操作总结

    命名空间:System.Diagnostics Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.在典型的 Stopwatch 方案中,先调用 Start 方 ...

  6. winSockets编程(五)非阻塞模式(远程算数程序)

    ##

  7. 【应用】for:批量修改文件名

    ## @echo off setlocal EnableDelayedExpansion rem set string=suffix for %%i in (*.txt) do ( set name= ...

  8. js基础学习笔记(一)

    * 在js编写过程中,尽量保持统一使用单引号 'XXXX': * 所有变量都要声明 var,避免全局函数调用的冲突: 1.1    输出内容 docment.write(‘aileLi’); 改变某I ...

  9. Memory Allocation Error

    Memory allocation error happened when I tried to install MySQL 5.7.13 in my server, which has 2G mem ...

  10. python-Django-01基础配置

    参考资料地址 http://www.ziqiangxuetang.com/django/django-install.html 官方文档 一: 1先下载Django源码包,下载地址https://ww ...