(六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)

参考并感谢

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

docker pull redis

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

# 端口
port 6379
# 密码
requirepass [email protected]
# 支持数据持久化
appendonly yes
# 关闭守护进程
daemonize no
# 默认多少个数据库
databases 16

# 从库时需要增加主库配置
# 主库密码(一个集群密码需要保持一致)
masterauth [email protected]
# 主库地址和端口
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 [email protected]

开放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 [email protected] -p 6380
slaveof 172.17.0.1 6379
config set masterauth [email protected]
docker exec -it redis6381 bash
redis-cli -a [email protected] -p 6381
slaveof 172.17.0.1 6379
config set masterauth [email protected]

主容器查询集群状态

docker exec -it redis6379 bash
redis-cli -a [email protected] -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 [email protected] -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 哨兵模式)》简书地址:

原文地址:https://www.cnblogs.com/godzff/p/11530290.html

时间: 2024-12-27 17:52:29

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

Redis高可用集群

Redis 高可用集群 Redis 的集群主从模型是一种高可用的集群架构.本章主要内容有:高可用集群的搭建,Jedis连接集群,新增集群节点,删除集群节点,其他配置补充说明. 高可用集群搭建 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术. Redis 3.0 之后便支持集群.Redis 集群中内置了 16384 个哈希槽.Redis 会根据节点数量大致均等的将哈希槽映射到不同

容器化部署Cassandra高可用集群

前提: 三台装有docker的虚拟机,这里用VM1,VM2,VM3表达(当然生产环境要用三个独立物理机,否则无高可用可言),装docker可参见Ubuntu离线安装docker. 开始部署: 部署图 如上图所示,三台VM的IP分别为: 192.168.0.101 192.168.0.102 192.168.0.103 客户端将使用这三个IP来连接集群,每个VM通过端口映射由docker网桥myBridge来与Cassandra容器通信,容器的IP会在启动容器时指定 部署步骤: 1. 建docke

生产环境的redis高可用集群搭建

这里只是总结一下安装步骤 如果要了解redis集群高可用的原理,推荐仔细看一遍配置文件示例http://download.redis.io/redis-stable/redis.conf,源码包里也有,里面的注释都是干货,看完会非常有帮助. 1.安装 wget http://download.redis.io/releases/redis-2.8.18.tar.gz tar xf redis-2.8.18.tar.gz cd redis-2.8.18.tar.gz make mkdir /usr

kubespray容器化部署kubernetes高可用集群

一.基础环境 docker版本1.12.6 CentOS 7 1.准备好要部署的机器 IP ROLE 172.30.33.89 k8s-registry-lb 172.30.33.90 k8s-master01-etcd01 172.30.33.91 k8s-master02-etcd02 172.30.33.92 k8s-master03-etcd03 172.30.33.93 k8s-node01-ingress01 172.30.33.94 k8s-node02-ingress02 172

部署 Zookeeper 高可用集群

一.Zookeeper原理简介ZooKeeper是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等. Zookeeper设计目的最终一致性:client不论连接到那个Server,展示给它的都是同一个视图.可靠性:具有简单.健壮.良好的性能.如果消息m被到一台服务器接收,那么消息m将被所有服务器接收.实时性:Zookeeper保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息.但由于网络延时等原因,Z

Redis高可用集群搭建

绪论 redis集群需要至少要三个master节点,下面将搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,这里用三台机器部署6个redis实例,每台机器一主一从.设备为192.168.137.11.192.168.137.12和192.168.137.13 1. 下载redis http://www.redis.cn/download.html 2.上传并解压 tar -zxvf /redis-5.0.4.tar.gz  需要将redis分别上传

Docker 创建 PXC 高可用集群并配置 Harpoxy 负载均衡

创建 PXC 集群环境 拉取 percona-xtradb-cluster 镜像 官方镜像地址:https://hub.docker.com/r/percona/percona-xtradb-cluster docker pull percona/percona-xtradb-cluster percona/percona-xtradb-cluster 太长,我们换个名字叫做pxc,操作如下: docker tag percona/percona-xtradb-cluster pxc 并将开始拉

[转帖]Breeze部署kubernetes1.13.2高可用集群

Breeze部署kubernetes1.13.2高可用集群 2019年07月23日 10:51:41 willblog 阅读数 673 标签: kubernetes 更多 个人分类: kubernetes https://blog.csdn.net/networken/article/details/86550735 所知道的太少了.. 不过简单试了下 不是特别好用 国内公司做的系统.. 也可能跟我的虚拟机兼容性有关系.. breeze简介 项目地址:https://github.com/wis

Mongodb3.4.7搭建高可用集群(二)

部署Mongodb高可用集群 准备 按照官方说明,至少需要3个config server,2个mongos,2个shard,每个shard至少2个副本,就是4个shard,共需要9个Mongodb实例.这里只虚拟出2个机器节点,将不同的Mongodb实例部署在不同的端口上模拟实现. 节点端口关系表 config server leo.zhi.1:10010,leo.zhi.2:10010 mongos server leo.zhi.1:10020,leo.zhi.2:10020 shard se