参考并感谢

下载redis镜像(不带tag标签则表示下载latest版本)

docker pull redis

从github 下载最新的redis.conf,注意重要参数

# 端口
port 6379
# 密码
requirepass Mypwd@123456
# 支持数据持久化
appendonly yes
# 关闭守护进程
daemonize no
# 默认多少个数据库
databases 16 # 从库时需要增加主库配置
# 主库密码(一个集群密码需要保持一致)
masterauth Mypwd@123456
# 主库地址和端口
slaveof 172.17.0.1 6379

启动 redis6379 主库

docker run -d \
-p 6379:6379 \
--name redis6379 \
--mount type=bind,source=/var/docker/configs/redis/6379/redis.conf,target=/usr/local/etc/redis/redis.conf \
--mount type=bind,source=/var/docker/datas/redis/6379,target=/data \
--restart always \
redis:latest \
redis-server /usr/local/etc/redis/redis.conf

启动 redis6380 从库(需要修改redis.conf的port和从服务器相关配置)

docker run -d \
-p 6380:6380 \
--name redis6380 \
--mount type=bind,source=/var/docker/configs/redis/6380/redis.conf,target=/usr/local/etc/redis/redis.conf \
--mount type=bind,source=/var/docker/datas/redis/6380,target=/data \
--restart always \
redis:latest \
redis-server /usr/local/etc/redis/redis.conf

启动 redis6381 从库(需要修改redis.conf的port和从服务器相关配置)

docker run -d \
-p 6381:6381 \
--name redis6381 \
--mount type=bind,source=/var/docker/configs/redis/6381/redis.conf,target=/usr/local/etc/redis/redis.conf \
--mount type=bind,source=/var/docker/datas/redis/6381,target=/data \
--restart always \
redis:latest \
redis-server /usr/local/etc/redis/redis.conf

从github 下载最新的sentinel.conf,注意重要参数

# 端口
port 26379
# 关闭守护进程
daemonize no
# 设定监听的redis集群的名称(mymaster)+IP+主库端口+最少从库数量
sentinel monitor mymaster 172.17.0.1 6379 2
# 设定监听的redis集群的密码(集群中主库和从库密码需要保持一致)
sentinel auth-pass mymaster Mypwd@123456

开放redis和sentinel端口并立即生效

firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --zone=public --add-port=6380/tcp --permanent
firewall-cmd --zone=public --add-port=6381/tcp --permanent
firewall-cmd --zone=public --add-port=26379/tcp --permanent
firewall-cmd --zone=public --add-port=26380/tcp --permanent
firewall-cmd --zone=public --add-port=26381/tcp --permanent
firewall-cmd --reload

不修改redis.conf,通过命令方式使从库加入集群

docker exec -it redis6380 bash
redis-cli -a Mypwd@123456 -p 6380
slaveof 172.17.0.1 6379
config set masterauth Mypwd@123456
docker exec -it redis6381 bash
redis-cli -a Mypwd@123456 -p 6381
slaveof 172.17.0.1 6379
config set masterauth Mypwd@123456

主容器查询集群状态

docker exec -it redis6379 bash
redis-cli -a Mypwd@123456 -p 6379
info Replication

查看哨兵监控情况(不同的哨兵登录不同的容器使用客户端26379 26380 26381)

redis-cli -p 26379
# 查看集群主库情况
sentinel master mymaster
# 查看集群从库情况
sentinel slaves mymaster

从库退出集群并保持原先数据(通过bash登录从库容器后,使用redis-cli客户端)

slaveof no one

验证哨兵模式+集群是否高可用(通过bash登录从库容器后,使用redis-cli客户端)

redis-cli -a Mypwd@123456 -p 6379 DEBUG sleep 60

PS:

启动容器之前,需要创建好对应的宿主机的文件目录,宿主机缺少文件会导致容器启动失败

《(六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)》CSDN地址:https://blog.csdn.net/madmarszff/article/details/100902662

《(六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)》博客园地址:https://www.cnblogs.com/godzff/p/11530290.html

《(六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)》简书地址:

(六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)的更多相关文章

  1. 基于docker实现redis高可用集群

    基于docker实现redis高可用集群 yls 2019-9-20 简介 基于docker和docker-compose 使用redis集群和sentinel集群,达到redis高可用,为缓存做铺垫 ...

  2. Redis高可用集群方案——哨兵

    本篇文章版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文系列地址http://www.cnblogs.com/tdws/tag/NoSql/ 本人之前有篇文章,讲到了redis主从复制,读写分 ...

  3. sentinel监控redis高可用集群(一)

    一.首先配置redis的主从同步集群. 1.主库的配置文件不用修改,从库的配置文件只需增加一行,说明主库的IP端口.如果需要验证的,也要加多一行,认证密码. slaveof 192.168.20.26 ...

  4. Redis 高可用集群

    Redis 高可用集群 Redis 的集群主从模型是一种高可用的集群架构.本章主要内容有:高可用集群的搭建,Jedis连接集群,新增集群节点,删除集群节点,其他配置补充说明. 高可用集群搭建 集群(c ...

  5. Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】

    No cross,no crown . 不经历风雨,怎么见彩虹. Redis哨兵模式,用现在流行的话可以说就是一个"哨兵机器人",给"哨兵机器人"进行相应的配置 ...

  6. 部署MYSQL高可用集群

                                                  mysql-day08     部署MYSQL高可用集群 u 集群架构                   ...

  7. 部署zookeepe高可用集群

                                                                部署zookeepe高可用集群 部署规划 Nno1         192.16 ...

  8. Centos7.6部署k8s v1.16.4高可用集群(主备模式)

    一.部署环境 主机列表: 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 master01 7.6. ...

  9. 一键部署Kubernetes高可用集群

    三台master,四台node,系统版本为CentOS7 IP ROLE 172.60.0.226 master01 172.60.0.86 master02 172.60.0.106 master0 ...

随机推荐

  1. 刷题记录:[De1CTF 2019]SSRF Me

    目录 刷题记录:[De1CTF 2019]SSRF Me 一.涉及知识点 1.MD5长度扩展攻击 2.Python 2.x - 2.7.16 urllib.fopen支持local_file导致LFI ...

  2. bat批处理 取得当前路径 %CD%

    在DOS的批处理中,有时候需要知道当前的路径.在DOS中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0. 这两个变量的用法和代表的内容一般是不同的. 1. %cd% 可以用在批 ...

  3. Java_jdbc 基础笔记之十三 数据库连接(DAO)

    public class DAO { // INSERT, UPDATE, DELETE 操作都可以包含在其中 public void update(String sql, Object... arg ...

  4. 缓存:修改Hosts不生效

    修改Hosts为何不生效,是DNS缓存? - Barret李靖 - 博客园https://www.cnblogs.com/hustskyking/p/hosts-modify.html 换个未打开过的 ...

  5. CEF 远程调试

    转载:https://www.cnblogs.com/TianFang/p/9906786.html 转载:https://stackoverflow.com/questions/29117882/d ...

  6. vue---splitpane分割

    使用splitpane可以对窗口进行拆分,这个splitpane组件还是比较好用的, 首先安装: npm install vue-splitpane 引入使用: import splitPane fr ...

  7. libpng error: IHDR: CRC error

    原本正常显示在主页端logo图片无法显示了,爆出如下错误: libpng error: IHDR: CRC error 查找原因如下:

  8. SDN实验---Ryu的安装

    一:Ryu是主流SDN开源控制器之一 (一)推文(摘录自) https://ryu.readthedocs.io/en/latest/ https://www.sdnlab.com/1785.html ...

  9. Spring IOC 三种注入方式(构造器,setter,接口)

    Spring的依赖注入有三种方式: 1,构造器注入 2,setter注入 3,接口注入 下面我给大家介绍一下这三种注入 1.构造器注入 构造器注入主要是依赖于构造方法去实现,构造方法可以是有参也可以是 ...

  10. 为CentOS安装python3

    摘自:https://www.jianshu.com/p/7c2b62c37223 1. 安装依赖 不要复制往下看 yum install openssl-devel bzip2-devel expa ...