使用docker搭建reids主从,哨兵。
Redis主从配置,如果没有真机就要用虚拟机,使用Docke for Windows host网络有问题。
准备:
1.安装虚拟机。
2.下载redis的安装文件:http://download.redis.io/releases/redis-5.0.7.tar.gz
1.redis-5.0.7/redis.conf
->Redis 配置文件。
2.redis-5.0.7/sentinel.conf
->哨兵配置文件。
主从配置:
1.将redis.conf 复制 3 份名为 redis-master.conf,redis-slave1.conf,redis-slave2.conf ,redis-master作为主服务器,内容除端口、密码外其他基本不用进行修改。
2.修改配置文件:
redis-master.conf
1.bind 127.0.0.1 改为 bind 0.0.0.0 或者注释
bind 与网卡对应的ip才能连接。
2.添加master密码
requirepass abc123
3.端口:
测试使用默认 6379端口。
redis-slave.conf
1.bind 127.0.0.1 改为 bind 0.0.0.0 或者注释
2.确定主redis地址
replicaof 192.168.10.202 6379
3.主密码
masterauth abc123
4.添加密码
requirepass abc123
5.端口分别为6380,和6381
两个从redis都是这样配置。

启动主从redis。
1.启动master:
docker run --rm --network host --name redis-master -v /home/ye/SystemConfig/RedisConfig/redis-master.conf:/usr/local/etc/redis/redis.conf -d redis redis-server /usr/local/etc/redis/redis.conf
2.启动从redis:
docker run --rm --name redis-slave1 --network host -v /home/ye/SystemConfig/RedisConfig/redis-slave1.conf:/usr/local/etc/redis/redis.conf -d redis redis-server /usr/local/etc/redis/redis.conf
docker run --rm --name redis-slave2 --network host -v /home/ye/SystemConfig/RedisConfig/redis-slave2.conf:/usr/local/etc/redis/redis.conf -d redis redis-server /usr/local/etc/redis/redis.conf
至此,一主两从配置好了。
redis-cli连接master:redis-cli -h 192.168.10.202 -p 6379 -a abc123
使用命令:info replication

可以看到有两台从机,我们可以在master读写,但在从slave只能读。
测试:
master:

slave:

哨兵模式:
1.虽然主从能够应对大多数高并发的情景,但是如果当master挂掉后,将无法写入新数据,也需要维护连接,需要人工进行恢复。因此需要采用自动化的机制来保证高可用。
2.哨兵模式将会自动进行以下动作。
1.不停的监控redis是否按照预期良好的运行。
2.如果发现某个redis节点出现状态,能够通知另一个进程(例如他的客户端)
3.能够进行自动切换,当一个master节点不可用时,能够选举出master的多个slave(如果超过一个slave的情况)钟的一个来作为新的master,其他的slave节点将会将它所追随master的地址改为被提升的为master的slave的新地址。
4.如果哨兵作为客户端提供服务发现,客户端连接哨兵,哨兵将提供当前master的地址提供服务,如果出现切换,也就是master挂了,哨兵将会提供客户端一个新地址。
3.哨兵的改变将在所有节点重启后恢复原来的配置,原master重启后将会变成slave节点。
配置哨兵:
1.复制sentinel.conf 为 redis-sentinel.conf
2.修改配置文件:
1.监控地址:(监视名称) (地址) (端口) (投票数,获得这么多同意后,将选举为master主机,两台从机,所有我写2)
sentinel monitor mymaster 192.168.10.202 6379 2
2.监控时间 (名称) (超时时间,当超过这个时间,则认为master已经挂了)
sentinel down-after-milliseconds mymaster 10000
3.设置连接redis主从密码
sentinel auth-pass mymaster abc123
4.设置bind 为 bind 0.0.0.0
3.注意配置文件项有先后顺序。
启动哨兵:
docker run --rm --name redis-sentinel --network host -v /home/ye/SystemConfig/RedisConfig/redis-sentinel.conf:/usr/local/etc/redis/sentinel.conf -d redis /usr/local/bin/redis-sentinel /usr/local/etc/redis/sentinel.conf

此时停止master:

可以看到主已经变为6381了。

支持,主从已经哨兵已经搭建完成,持久化那就是另一回事了。
使用docker搭建reids主从,哨兵。的更多相关文章
- linux系统——Redis集群搭建(主从+哨兵模式)
趁着这几天刚好有点空,就来写一下redis的集群搭建,我跟大家先说明,本文的redis集群因为linux服务器只是阿里云一台服务器,所以集群是redis启动不同端口,但是也能达到集群的要求.其实不同服 ...
- docker搭建redis主从集群和sentinel哨兵集群,springboot客户端连接
花了两天搭建redis主从集群和sentinel哨兵集群,讲一下springboot客户端连接测试情况 redis主从集群 从网上查看说是有两种方式:一种是指定配置文件,一种是不指定配置文件 引用地址 ...
- 新手之:SpringBoot ——Reids主从哨兵整合(CentOS7)
一.Redis主从搭建(一台服务器模拟多个端口) 结构图:) 1.确保安装了Redis,我装在了/opt/redis目录下.可通过"whereis redis-cli"命令查看是否 ...
- 基于 docker 的redis 主从+哨兵(快速部署)
很简单(字多的步骤见:http://www.cnblogs.com/vipzhou/p/8580495.html) 1.直接启动3个容器 docker network create --subnet ...
- 使用docker搭建redis主从模式
前期准备: 本地Linux版本:CentOS Linux release 7.5.1804 (Core)Docker版本:Docker version 1.13.1, build dded712/1. ...
- Docker搭建MySQL主从集群,基于GTID
写在前边 搭建MySQL读写分离主从集群,这里未使用binlog方式,使用的是GTID方式 源码见我的Github https://github.com/hellxz/mysql-cluster-do ...
- Redis主从&哨兵集群搭建
主从集群 在搭建主从集群前,我们先把Redis安装起来: #解压Redis压缩包 [root@master lf]# tar -zxvf redis-6.2.1.tar.gz -- #安装gcc [r ...
- Docker构建mysql主从
一.为什么要搭建主从架构呢 1.数据安全,可以进行数据的备份. 2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器.从而缓解数据库访问的压力 3.故障 ...
- redis 安装 集群 主从 哨兵 docker
安装redis 官方文档 docker run -d --net host -v /opt/myconfig/redis/redis.conf:/usr/local/etc/redis/redis.c ...
随机推荐
- SQL Server 查找空值
需要查找某一列为空的数据 )NULL不能用 “=”运算符 )NULL不支持+-*/ <> )不同的函数对NULL的支持不一样,使用前要测试,不能靠猜,不能凭经验
- linux6 x86-64 RPM包安装mysql5.7.20
注意版本和此次更新时间 2017-12-03 版本:mysql-5.7.20-1.el6.x86_64 环境:linux6.x 官方下载地址: wget https://dev.mysql.co ...
- 123457123456#4#----com.MC.mathGame246----前拼后广--数学Q版训练Game-mc4444
com.MC.mathGame246----前拼后广--数学Q版训练Game-mc
- Python - Django - ORM 一对一表结构
当一张表的某一些字段查询的比较频繁,另外一些字段查询的不是特别频繁,可以把不怎么常用的字段 单独拿出来做成一张表,然后用一对一的表关联起来 这样既保证数据都完整的保存下来,又能保证检索更快 model ...
- Swift4.0复习泛型
1.泛型的基本使用: /// 定义了一个泛型结构体MyStruct, /// 其泛型形参为T struct MyStruct<T> { /// 用泛型T定义存储式成员属性t var t ...
- 【KMP】POJ 2185 Milking Grid -- Next函数的应用
题目链接:http://poj.org/problem?id=2185 题目大意:求一个二维的字符串矩阵的最小覆盖子矩阵,即这个最小覆盖子矩阵在二维空间上不断翻倍后能覆盖原始矩阵. 题目分析:next ...
- EM算法概念
EM算法是一种非常经典的alternative optimizing算法.alternative optimizing的思想就是对于一个最优化问题,可以计算分为两步或者参数分为两个,就可以随机任意的选 ...
- mousedown、mouseup、click事件之间的关系及执行顺序
三个事件的触发时机 mousedown 当鼠标指针移动到元素上方,并按下鼠标按键(左.右键均可)时,会发生 mousedown 事件.与 click 事件不同,mousedown 事件仅需要按键被 ...
- [转帖]Hadoop与Spark比较
Hadoop与Spark比较 https://www.cnblogs.com/charlesblc/p/6206198.html 感觉自己落下好多东西没有学习 先看这篇文章:http://www.hu ...
- [转帖]时间序列数据库 (TSDB)
时间序列数据库 (TSDB) https://www.jianshu.com/p/31afb8492eff 0.3392019.01.28 10:51:33字数 5598阅读 4030 背景 2017 ...