redis哨兵:用于管理和实现多个redis组实现高可用,sentinel哨兵只监控主节点,因为主节点上有所有的从节点信息,当master节点发生故障,sentinel之间会进行投票选举一个slave节点切换成为从master节点,实现故障转移;

sentinel哨兵可以单个,为了避免哨兵的单点故障,这里我们在每天的redis服务器上都启用了哨兵功能,配置都是相同的;

(1)配置redis主从复制

规划

  1. ip port role
  2. 192.168.1.31 6379 master,sentinel
  3. 192.168.1.32 6379 slave,sentinel
  4. 192.168.1.33 6379 slave,sentinel

0.关闭防火墙

  1. systemctl stop firewald.service
  2. systemctl disable firewald.service

1.安装和启动redis

  1. yum install epel-release -y
  2. yum install redis -y
  3. systemctl start redis
  4. systemctl enable redis

2.master配置

  1. #vim /etc/my.cnf
  2. bind 0.0.0.0 //修改监听ip
  3. port 6379 //监听端口
  4. daemonize yes //后台运行
  5. requirepass redhat //配置登录密码

3.slave配置

  1. vim /etc/my.cnf
  2. bind 0.0.0.0
  3. port 6379
  4. daemonize yes
  5. masterauth redhat //如果master配置了requiress登录密码,需要配置masterauth认证
  6. slaveof 192.168.1.31 6379 //指定master节点的ip和端口
  7. slave-read-only yes //从节点只读

4.master 和slave端 验证

  1. redis-cli -h 192.168.1.31 -a redhat info replication
  2. redis-cli -h 192.168.1.31 -a redhat set ip 1.1.1.1
  3. redis-cli -h 192.168.1.31 -a redhat set port 8080

slave验证:

  1. redis-cli -h 192.168.1.33 -a redhat
  2. > keys *
  3. redis-cli -h 192.168.1.32 -a redhat
  4. > keys *

(2)配置sentinel,3台节点都配置sentinel

1.修改sentinel配置文件,3台节点配置文件一样

  1. #vim /etc/redis-sentinel.conf
  2. protected-mode no //关闭保护模式
  3. port 26379
  4. logfile "/var/log/redis/sentinel.log"
  5. sentinel monitor redis-master 192.168.1.31 6379 3 //指定redi的smaster主节点的ip和端口,集群名字,3表示sentinel个数
  6. sentinel down-after-milliseconds redis-master 30000 //判断主节点不在线的超时时长,默认毫秒,30秒,30秒连不上master节点,就认为主节点down机
  7. sentinel parallel-syncs redis-master 1 //从服务器提升为主服务器的时候,同时允许1个从服务器发起连接请求
  8. sentinel failover-timeout redis-master 90000 //故障转移的超时时间,从服务器提升为主服务器的超时时间
  9. sentinel auth-pass redis-master redhat //如果redis配置了认证,需要加上

2.启动redis的sentinel

  1. redis-sentinel /etc/redis-sentinel.conf

3.验证,more /var/log/redis/sentinel.log

现在master是192.168.1.31,slave是192.168.1.32和192.168.1.33

  1. redis-cli -h 192.168.1.31 -p 26379
  2. >info sentinel



4.停止192.168.1.31上的redis服务, 然后查看sentinel状态

192.168.1.33由slave节点切换到master,slave是192.168.1.32



CentOS7配置sentinel高可用redis的更多相关文章

  1. Redis Sentinel 高可用实现说明

    背景:      前面介绍了Redis 复制.Sentinel的搭建和原理说明,通过这篇文章大致能了解Sentinel的原理和实现方法以及相关的搭建.这篇文章就针对Redis Sentinel的搭建做 ...

  2. Redis Sentinel高可用架构

    Redis目前高可用的架构非常多,比如keepalived+redis,redis cluster,twemproxy,codis,这些架构各有优劣,今天暂且不说这些架构,今天主要说说redis se ...

  3. Redis之Sentinel高可用安装部署

    背景: 之前通过Redis Sentinel 高可用实现说明和Redis 复制.Sentinel的搭建和原理说明大致已经介绍了sentinel的原理和实现,本文再次做个简单的回顾.具体的信息见前面的两 ...

  4. Redis Sentinel 高可用服务搭建

    阅读目录: 关于 Redis 的概念 关于 Redis Sentinel 的概念 搭建 Redis Server(master) 搭建 Redis Server(slave) 搭建 Redis Sen ...

  5. redis 系列25 哨兵Sentinel (高可用演示 下)

    一. Sentinel 高可用环境准备 1.1 Sentinel 集群环境 环境 说明 操作系统版本 CentOS  7.4.1708  IP地址 172.168.18.200 网关Gateway 1 ...

  6. 【转载】Redis Sentinel 高可用服务架构搭建

    作者:田园里的蟋蟀 出处:http://www.cnblogs.com/xishuai/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接. 阅读 ...

  7. Redis|Sentinel 高可用架构

    一 前言 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端 ...

  8. 使用Docker Compose部署基于Sentinel的高可用Redis集群

    使用Docker Compose部署基于Sentinel的高可用Redis集群 https://yq.aliyun.com/articles/57953 Docker系列之(五):使用Docker C ...

  9. Redis Sentinel 高可用部署实践集群

    一.Redis Sentinel 介绍    1.Sentinel     数据库环境搭建,从单机版到主备.再到多数据库集群,我们需要一个高可用的监控:比如Mysql中,我们可能会采用MHA来搭建我们 ...

随机推荐

  1. Eclipse 调试

    F6:(Step Over)单步执行每一行程序: F8:(Resume)继续执行该程序直到下一个断点或程序结束: F5: (Step Into)跳入一个方法内部: F7:(Step Return)从当 ...

  2. UVA129 暴力dfs,有许多值得学习的代码

    紫书195 题目大意:给一个困难的串,困难的串的定义就是里面没有重复的串. 思路:不需要重新对之前的串进行判重,只需要对当前的加入的字符进行改变即可. 因为是判断字典序第k个的字符串,所以要多一个全局 ...

  3. [Luogu 2604] ZJOI2010 网络扩容

    [Luogu 2604] ZJOI2010 网络扩容 第一问直接最大流. 第二问,添加一遍带费用的边,边权 INF,超级源点连源点一条容量为 \(k\) 的边来限流,跑费用流. 大约是第一次用 nam ...

  4. mysql 字段为NULL的一些操作

    1. 修改字段为NULL update tableName set column1 = null where id = 1 2. 字段是否为NULL (1)字段为空 select * tableNam ...

  5. MyBatis框架的使用及源码分析(十二) ParameterHandler

    在StatementHandler使用prepare()方法后,接下来就是使用ParameterHandler来设置参数,让我们看看它的定义: package org.apache.ibatis.ex ...

  6. 局部性原理的点滴应用场景 use of localityprinciple

    话说九月份博士入学面试的时候被问到了一个问题:请说明一下局部性原理在计算机科学中的应用场景?(哈哈,不记得怎么问的了,大概是这个意思)但是巴拉巴拉整半天却也只说出了一个Cache,后来补充的也都是跟C ...

  7. 【Codeforces542E】Playing on Graph [Bfs][Dfs]

    Playing on Graph Time Limit: 20 Sec  Memory Limit: 512 MB Description Input Output Sample Input 5 4 ...

  8. HDU5852 Intersection is not allowed!

    There are K pieces on the chessboard. The size of the chessboard is N*N. The pieces are initially pl ...

  9. position的用法与心得

    position的四个属性值: relative absolute fixed static 为了便于理解,首先创建对应的div <div class="main"> ...

  10. hdu 1232 畅通工程(并查集算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 畅通工程 Time Limit: 4000/2000 MS (Java/Others)    M ...