Redis 高可用之哨兵模式
参考 :
https://mp.weixin.qq.com/s/Z-PyNgiqYrm0ZYg0r6MVeQ
这篇文章有两个问题
1.虽然运行了3个sentinel容器,实际上只有一个sentinel运行 具体可以留意输出的最后一行

2.外部调试连接redis 获取到的monster地址是docker 的虚拟ip(172.17.0.2:6379)地址,外部不能访问,但是如果你把新建的springboot 项目和这些容器放到同一个主机的话是没有问题的
详细解决方案 查看
Redis 高可用之哨兵模式(二)
一、redis高可用解决方案
redis主从
优点:1、高可靠性,主从实时备份,有效解决单节点数据丢失问题。
2、可做读写分离,从库分担读操作,缓解主库压力
缺点:主库异常,需要手动主从切换
2.redis哨兵模式
优点:1、有效解决主从模式主库异常手动主从切换的问题
缺点:1、运维复杂,哨兵选举期间,不能对外提供服务
其他解决方案优缺点,可以查看 高可用 ,本篇主要介绍哨兵解决方案
二、具体实现
windows上安装redis新版本好像已经不支持了,本文采用的是docker快速实现redis高可用实例的创建
具体环境参数:
操作系统:centos7
docker:18.09.3
1、拉取镜像,采用docker官方镜像
docker pull docker.io/redis
2、创建redis配置文件
mkdir /data/redis/conf
cd /data/redis/conf
touch redis.conf
vi redis.conf
其中配置内容如下
logfile "redis.log"
port
dir /data
appendonly yes
appendfilename appendonly.aof
requirepass
3、创建从库redis配置文件 文件名称命名为 redis_01.conf
其中内容如下:其中slaveof 的ip 是宿主的docker0网卡的ip 具体ip需要在主库容器运行起来后,通过 docker inspect redis-6379 命令来查看ip地址
logfile "redis.log"
port
dir /data
appendonly yes
appendfilename appendonly.aof
slaveof 172.21.186.236
masterauth
requirepass
4、运行容器
docker run --name redis- -v /data/conf/redis.conf:/data/redis.conf -p : -d docker.io/redis redis-server /data/redis.conf docker run --name redis- -v /data/conf/redis_01.conf:/data/redis.conf -p : -d docker.io/redis redis-server /data/redis.conf docker run --name redis- -v /data/conf/redis_02.conf:/data/redis.conf -p : -d docker.io/redis redis-server /data/redis.conf
5、查看主库运行情况
[root@localhost conf]# docker exec -ti redis-6379 /bin/bash
root@9865d9442e67:/data# redis-cli
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=172.17.0.3,port=6379,state=online,offset=714,lag=1
slave1:ip=172.17.0.4,port=6379,state=online,offset=714,lag=1
master_replid:6baa315b071196f7530bf2c9fdfb132785deeadb
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:714
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:714
127.0.0.1:6379>
可以看到已经有两个从库
6、创建sentinel.conf
touch sentinel.conf
vi sentinel.conf
其中sentinel.conf内容如下
logfile "sentinel.log"
sentinel monitor mymaster 172.17.0.2
7、创建sentinel容器
docker run --name redis-s- -v /data/conf/sentinel.conf:/data/sentinel.conf -p : -d docker.io/redis redis-sentinel sentinel.conf
docker run --name redis-s-6380 -v /data/conf/sentinel.conf:/data/sentinel.conf -p 26380:26379 -d docker.io/redis redis-sentinel sentinel.conf
docker run --name redis-s-6381 -v /data/conf/sentinel.conf:/data/sentinel.conf -p 26381:26379 -d docker.io/redis redis-sentinel sentinel.conf
8、查看sentinel运行状态
[root@localhost conf]# docker exec -ti redis-s- /bin/bash
root@430b54968068:/data# redis-cli -h 127.0.0.1 -p
127.0.0.1:> info Sentinel
# Sentinel
sentinel_masters:
sentinel_tilt:
sentinel_running_scripts:
sentinel_scripts_queue_length:
sentinel_simulate_failure_flags:
master0:name=mymaster,status=ok,address=172.17.0.2:,slaves=,sentinels=
127.0.0.1:>
9、停止主库
docker stop redis-
10、进入sentinel容器,查看日志
docker exec -ti redis-s- /bin/bash
cat sentinel.log

红色划线部分可以看到成功切换主从
11、重新启动redis-6379 容器
docker start redis-
12、进入容器内部查看redis运行情况
docker exec -ti redis- /bin/bash

可以看到已经成为从库
Redis 高可用之哨兵模式的更多相关文章
- Redis高可用之哨兵模式Sentinel配置与启动(五)
0.Redis目录结构 1)Redis介绍及部署在CentOS7上(一) 2)Redis指令与数据结构(二) 3)Redis客户端连接以及持久化数据(三) 4)Redis高可用之主从复制实践(四) 5 ...
- 老司机带你玩转面试(4):Redis 高可用之哨兵模式
前文回顾 建议前面文章没看过的同学先看下前面的文章: 「老司机带你玩转面试(1):缓存中间件 Redis 基础知识以及数据持久化」 「老司机带你玩转面试(2):Redis 过期策略以及缓存雪崩.击穿. ...
- Redis学习三:Redis高可用之哨兵模式
申明 本文章首发自本人公众号:壹枝花算不算浪漫,如若转载请标明来源! 感兴趣的小伙伴可关注个人公众号:壹枝花算不算浪漫 22.jpg 前言 Redis 的 Sentinel 系统用于管理多个 Redi ...
- Redis 高可用之哨兵模式(二)
上一篇实际操作过程中遇到两个问题 问题一:虽然运行了3个sentinel容器,实际上只有一个sentinel运行 问题出现的原因很简单,三个sentinel用的是同一个挂载配置文件,容器内部的更改直接 ...
- Redis高可用方案-哨兵与集群
Redis高可用方案 一.名词解释 二.主从复制 Redis主从复制模式可以将主节点的数据同步给从节点,从而保障当主节点不可达的情况下,从节点可以作为 后备顶上来,并且可以保障数据尽量不丢失(主从 ...
- redis高可用(哨兵机制)
redis哨兵机制:redis的哨兵系统用于管理多个reids服务器,该系统主要有三个作用: 监控:哨兵 会不断地检查你的主服务(Master)和从服务器(Slave)是否运作正常. 提醒:当被监控的 ...
- Redis高可用-主从,哨兵,集群
主从复制 Master-Slave主从概念 同时运行多个redis服务端,其中一个作为主(master),其他的一个或多个作为从(slave),主从之间通过网络进行通讯,slave通过复制master ...
- 老司机带你玩转面试(3):Redis 高可用之主从模式
前文回顾 建议前面文章没看过的同学先看下前面的文章: 「老司机带你玩转面试(1):缓存中间件 Redis 基础知识以及数据持久化」 「老司机带你玩转面试(2):Redis 过期策略以及缓存雪崩.击穿. ...
- Redis高可用方案哨兵机制------ 配置文件sentinel.conf详解
Redis的哨兵机制是官方推荐的一种高可用(HA)方案,我们在使用Redis的主从结构时,如果主节点挂掉,这时是不能自动进行主备切换和通知客户端主节点下线的. Redis-Sentinel机制主要用三 ...
随机推荐
- 【z03】Mayan游戏
[问题描述] Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个 7 行5 列的棋盘,上面堆放 着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游 戏通关是 ...
- Qt单元测试工具 QTestlib(QVERIFY, QFETCH, QCOMPARE等)
优点: QTestLib提供了单元测试框架的基本功能,并提供了针对GUI测试的扩展功能. 特性 详细描述 轻量级 QTestlib 只包含 6000行代码和 60个导出符号. 自包含 对于非GUI测 ...
- HDU 1422 重温世界杯 - 贪心
传送门 题目大意: 给一串数,又正有负,求每一个前缀都大于0的最长子串长度. 题目分析: 直接贪心:每次左端点向右推1,不断延伸右端点,更新答案. code #include<bits/stdc ...
- Java 中StringBuffer与StringBuilder区别(转)及String类的一些基本操作代码
String 字符串常量StringBuffer 字符串变量(线程安全) 多个线程访问时,不会产生问题(Synchronized)StringBuilder 字符串变量(非线程安全) 多个线程访问时 ...
- SQLite的查询优化
SQLite是个典型的嵌入式DBMS,它有很多优点,它是轻量级的,在编译之后很小,其中一个原因就是在查询优化方面比较简单,它只是运用索引机制来进行优化的,经过对SQLite的查询优化的分析以及对源代码 ...
- myeclipse 8.6 software and workspace center is currently not available
Myeclipse安装EGit插件的时候偏偏遇到software and workspace center is currently not available 不用打开myeclipse conf ...
- solr+ Eclipse 4.3+ tomcat 7.5 +winds7(一)
这种方法是我自己依据对tomcat运行项目流程和solr的运行流程来自己弄的,所以有点麻烦,请到原地址查看心血谢谢:http://blog.csdn.net/chunlei_zhang/article ...
- 解析Android的 消息传递机制Handler
1. 什么是Handler: Handler 网络释义"机械手.经理"意思,在Android它用于管理多个线程UI操作: 2. 为什么会出现Handler: 在Android里面的 ...
- Effective JavaScript Item 38 调用父类的构造函数在子类的构造函数
作为这一系列Effective JavaScript的读书笔记. 在一个游戏或者图形模拟的应用中.都会有场景(Scene)这一概念.在一个场景中会包括一个对象集合,这些对象被称为角色(Actor). ...
- [Unity3D]Unity3D叙利亚NGUI血液和技能的冷却效果
---------------------------------------------------------------------------------------------------- ...