参考并感谢

下载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. mysql 字符类以及重复元字符

    字符类 [:alnum:]=[a-zA-Z0-] [:alpha:]=[a-zA-Z] [:digit:]=[-] [:lower:]=[a-z] [:upper:]=[A-Z] [:xdigit:] ...

  2. 稀疏矩阵的存储(c++)

    0        0        0        0        0         0 0        3        0        0        0         0 0    ...

  3. 改进欧拉公式求解常微分方程(c++)

    #include<iostream> #include<iomanip> using namespace std; int main() { double x,y,h,temp ...

  4. compile install deploy;

    如果compile的话,也会打包在target里面: 如果有问题的话就找到本地仓库把它删掉: /Users/yinfuqing/.m2/repository/com/sankuai/qcs/qcs-r ...

  5. 剑指offer:数组中的逆序对

    题目描述: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%100 ...

  6. GWAS Catalog数据库简介

    GWAS Catalog The NHGRI-EBI Catalog of published genome-wide association studies EBI负责维护的一个收集已发表的GWAS ...

  7. 《精通CSS第3版》(5)漂亮的盒子

  8. js知识体系

  9. tomcat关闭异常导致的项目无法重启

    有时候 会莫名其妙的,项目启动时候 报tomcat启动异常.重启项目 甚至重启电脑 都没用. 这个时候 ,一般是代码有问题... 这次遇到的问题 就是 引用了外部的jar包,里面有一个自定义异常.但是 ...

  10. android基础---->WebView的使用

    webView的使用 我们通过一个小的测试程序来体会webView的简单使用,项目结构如下: