docker搭建redis主从哨兵集群的实现步骤

目录
  • 1:获取redis镜像
  • 2:创建redis主从+哨兵docker-compose文件
  • 3:redis配置和哨兵配置说明
  • 4:启动docker-compose
  • 5:查看启动情况
  • 6:进入主节点查看集群情况

本文以docker-compose 搭建高可用Redis 主从、哨兵集群为例子

关于redis主从,哨兵集群原理参见:Redis 单机安装/ 哨兵模式集群安装

1:获取redis镜像

docker pull redis:6.2.7

2:创建redis主从+哨兵docker-compose文件

cd /opt/docker/redis
vi docker-compose.yml

docker-compose.yml的内容如下

version: '3'
services:
  master:
    image: redis:6.2.7       ## 镜像
    container_name: redis-master
    command: redis-server /etc/redis/redis.conf --requirepass 123456 --masterauth 123456
    volumes:
    - /opt/docker/redis/data/redis_data1:/data
    - /opt/docker/redis/conf/redis1.conf:/etc/redis/redis.conf
    network_mode: "host"
  slave1:
    image: redis:6.2.7                ## 镜像
    container_name: redis-slave-1
    volumes:
    - /opt/docker/redis/data/redis_data2:/data
    - /opt/docker/redis/conf/redis2.conf:/etc/redis/redis.conf
    command: redis-server /etc/redis/redis.conf --slaveof redis-master 6379 --requirepass 123456 --masterauth 123456
    depends_on:
    - master
    network_mode: "host"
  slave2:
    image: redis:6.2.7                ## 镜像
    container_name: redis-slave-2
    volumes:
    - /opt/docker/redis/data/redis_data3:/data
    - /opt/docker/redis/conf/redis3.conf:/etc/redis/redis.conf
    command: redis-server /etc/redis/redis.conf --slaveof redis-master 6379 --requirepass 123456 --masterauth 123456
    depends_on:
    - master
    network_mode: "host"
  sentinel1:
    image: redis:6.2.7       ## 镜像
    container_name: redis-sentinel-1
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    volumes:
    - /opt/docker/redis/conf/sentinel1.conf:/usr/local/etc/redis/sentinel.conf
    network_mode: "host"
    depends_on:
    - master
    - slave1
    - slave2
  sentinel2:
    image: redis:6.2.7                ## 镜像
    container_name: redis-sentinel-2
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    volumes:
    - /opt/docker/redis/conf/sentinel2.conf:/usr/local/etc/redis/sentinel.conf
    network_mode: "host"
    depends_on:
    - master
    - slave1
    - slave2
  sentinel3:
    image: redis:6.2.7                ## 镜像
    container_name: redis-sentinel-3
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    volumes:
    - /opt/docker/redis/conf/sentinel3.conf:/usr/local/etc/redis/sentinel.conf
    network_mode: "host"
    depends_on:
    - master
    - slave1
    - slave2

3:redis配置和哨兵配置说明

查看配置文件的目录树

cd /opt/docker/redis
tree ./

结构如下

redis1.conf,redis2.conf,redis3.conf配置如下

#redis1.conf
bind 0.0.0.0
port 6379
protected-mode no
slave-read-only no

#redis2.conf
bind 0.0.0.0
port 6380
protected-mode no
slave-read-only no

#redis3.conf
bind 0.0.0.0
port 6381
protected-mode no
slave-read-only no

sentinel1.conf,sentinel1.conf,sentinel1.conf配置:

#sentinel1.conf
port 26379
dir /tmp
sentinel monitor mymaster 192.168.18.131 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 10000
sentinel deny-scripts-reconfig yes

#sentinel2.conf
port 26380
dir /tmp
sentinel monitor mymaster 192.168.18.131 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 10000
sentinel deny-scripts-reconfig yes

#sentinel3.conf
port 26381
dir /tmp
sentinel monitor mymaster 192.168.18.131 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 10000
sentinel deny-scripts-reconfig yes

说明:

【sentinel monitor mymaster 192.168.18.131 6379 2】192.168.18.131为服务器的IP地址,6379为redis master的端口号
【sentinel auth-pass mymaster 123456 】设置主节点的密码  
【sentinel down-after-milliseconds mymaster 30000】表示在一段时间范围内sentinel向master发送的心跳PING没有回复则认为master不可用了。 
【sentinel parallel-syncs mymaster 1】的parallel-syncs表示设置在故障转移之后,同时可以重新配置使用新master的slave的数量。数字越低,更多的时间将会用故障转移完成,但是如果slaves配置为服务旧数据,你可能不希望所有的slave同时重新同步master。因为主从复制对于slave是非阻塞的,当停止从master加载批量数据时有一个片刻延迟。通过设置选项为1,确信每次只有一个slave是不可到达的。
【sentinel failover-timeout mymaster 10000  】表示10秒内mymaster还没活过来,则认为master宕机了。

redis_data1, redis_data2,redis_data3为空文件夹,用于存放redis数据文件

4:启动docker-compose

docker-compose up
#或者,后台启动
docker-compose up -d

5:查看启动情况

6:进入主节点查看集群情况

docker exec -it 主节点容器id或者容器名称 bash
redis-cli -p 6379
info replication

到此这篇关于docker搭建redis主从哨兵集群的实现步骤的文章就介绍到这了,更多相关docker redis主从哨兵集群内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 基于Docker搭建Redis主从集群的实现

    最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得一定是之前写的这篇 <基于Docker的Redis集群搭建> 文章有问题了,所以我花了几分钟浏览之前的文章总结了下面几个问题: redis 数量太少,只创建了 3 个实例:由于只有 3 个实例,所以全部只能是主节点,无法体现集群主从关系:如何搭建主从集群?如何分配从节点? 基于之前的文章,我想快速的过一下这几个问题,本文基于 Docker + Redis 5.0.5 版本,通过 cluster 方式创建一个 6 个 redi

  • 基于Docker实现Redis主从+哨兵搭建的示例实践

    目录 1.拉取镜像 2. 编写主 从配置文件 2.1 创建/home/redis/redis_conf目录: 2.2 编写主配置文件 2.3 编写从配置文件 2.4  编写从配置文件 3 编写sentinel配置文件 3.1创建哨兵配置文件 3.2编写哨兵配置文件 4  启动主节点容器 4.1启动主节点容器 4.2 启动从节点容器 5 存在的问题: 6.分别启动每个  docker容器里面的哨兵 6.1进入主节点容器 6.2查看文件 6.3启动主哨兵服务 6.4 启动两个从哨兵服务 6.5进入主

  • 使用docker搭建redis主从的方法步骤

    一.构建 Docker 环境 1.创建 dockerfile FROM centos:latest RUN groupadd -r redis && useradd -r -g redis redis RUN yum -y update && yum -y install epel-release && yum -y install redis && yum -y install net-tools EXPOSE 6379 2.构建镜像 do

  • Docker下redis的主从配置教程详解

    1.拉取redis镜像 docker pull redis 2.启动3个redis容器服务,分别使用到6379.6380.6381端口 docker run --name redis-6379 -p 6379:6379 -d redis docker run --name redis-6380 -p 6380:6379 -d redis docker run --name redis-6381 -p 6381:6379 -dredis 3.查看容器 [tcy@tcy1 ~]$ docker ps

  • 详解使用Docker进行Redis主从复制实践

    一.背景 最近在做零信任安全网关,需要使用Redis作为认证缓存服务器,因为网关服务器分布在多个集群,每次都跨机房认证不太实现:所以需要使用Redis主从同步,将过程记录下来,希望可以给需要的同学一点参考. 二.操作步骤 安装Docker 主服务配置 从服务配置 验证同步效果 三.安装Docker 本篇文章主要是问了记录主从配置的过程,因此我采用最简单的docker方式来搭建Redis服务,安装docker的命令如下所示 curl -sSL https://get.daocloud.io/doc

  • 使用Docker搭建Redis主从复制的集群

    在主从复制模式的集群里,主节点一般是一个,从节点一般是两个或多个,写入主节点的数据会被复制到从节点上,这样一旦主节点出现故障,应用系统能切换到从节点去读写数据,这样能提升系统的可用性.而且如果再采用主从复制模式里默认的读写分离的机制,更能提升系统的缓存读写性能.所以对性能和实时性不高的系统而言,主从复制模式足以满足一般的性能和安全性方面的需求. 1 概述主从复制模式 在实际应用中,如果有相应的设置,在向一台Redis服务器里写数据后,这个数据可以复制到另外一台(或多台)Redis服务器,这里数据

  • centos6使用docker部署redis主从数据库操作示例

    本文实例讲述了centos6使用docker部署redis主从数据库操作.分享给大家供大家参考,具体如下: 目录结构: /redis /Dockerfile /Readme /redis-3.2.8.tar.gz /start.sh Dockerfile: FROM centos MAINTAINER qiongtao.li hnatao@126.com ADD ./redis-3.2.8.tar.gz /opt ADD ./start.sh /opt/start_redis.sh RUN ec

  • docker搭建redis主从哨兵集群的实现步骤

    目录 1:获取redis镜像 2:创建redis主从+哨兵docker-compose文件 3:redis配置和哨兵配置说明 4:启动docker-compose 5:查看启动情况 6:进入主节点查看集群情况 本文以docker-compose 搭建高可用Redis 主从.哨兵集群为例子 关于redis主从,哨兵集群原理参见:Redis 单机安装/ 哨兵模式集群安装 1:获取redis镜像 docker pull redis:6.2.7 2:创建redis主从+哨兵docker-compose文

  • Redis sentinel哨兵集群的实现步骤

    目录 一.Redis sentinel哨兵集群概述 (1)Redis哨兵概述 (2)Redis哨兵的工作机制 (3)哨兵的三个定时监控任务 二.部署Redis哨兵系统 (1)实验环境 (2)实验步骤 -在每台服务器上都安装Redis 一.Redis sentinel哨兵集群概述 (1)Redis哨兵概述 *Sentinel 哨兵:这是一个分布式系统,该进程是用于监控Redis集群中Master主服务器的工作状态,在Master主服务器发生故障时,可以实现Master和Slave服务器的秒级切换,

  • redis搭建哨兵集群的实现步骤

    目录 redis安装部署 redis集群架构 配置redis主从 测试主从 搭建redis哨兵集群 哨兵集群详解: 哨兵集群原理 哨兵集群 redis安装部署 环境说明: redis使用的是6.2.6版本 主机 IP 系统 master 192.168.129.136 redhat8 slave 192.168.182.135 redhat8 slave2 192.168.182.134 redhat8 准备工作 // 三台主机都要做 [root@master opt] wget https:/

  • 通过Docker部署Redis 6.x集群的方法

    系统环境: Redis 版本:6.0.8 Docker 版本:19.03.12 系统版本:CoreOS 7.8 内核版本:5.8.5-1.el7.elrepo.x86_64 一.什么是 Redis 集群模式 在 Redis 3.0 版本后正式推出 Redis 集群模式,该模式是 Redis 的分布式的解决方案,是一个提供在多个 Redis 节点间共享数据的程序集,且 Redis 集群是去中心化的,它的每个 Master 节点都可以进行读写数据,每个节点都拥有平等的关系,每个节点都保持各自的数据和

  • Docker搭建RabbitMq的普通集群和镜像集群的详细操作

    目录 一.搭建RabbitMq的运行环境 1.通过search查询rabbitmq镜像 2.通过pull拉取rabbitmq的官方最新镜像 3.创建容器 4.启动管理页面 5.设置erlang cookie 二.普通模式 三.镜像模式 普通集群:多个节点组成的普通集群,消息随机发送到其中一个节点的队列上,其他节点仅保留元数据,各个节点仅有相同的元数据,即队列结构.交换器结构.vhost等.消费者消费消息时,会从各个节点拉取消息,如果保存消息的节点故障,则无法消费消息,如果做了消息持久化,那么得等

  • docker 搭建hadoop以及hbase集群详解

    要用docker搭建集群,首先需要构造集群所需的docker镜像.构建镜像的一种方式是,利用一个已有的镜像比如简单的linux系统,运行一个容器,在容器中手动的安装集群所需要的软件并进行配置,然后commit容器到新的镜像.另一种方式是,使用Dockerfile来自动化的构造镜像. 下面采用第二种. 1. 创建带ssh服务的ubuntu14.04系统镜像 使用ubuntu14系统来安装hadoop和hbase,由于hadoop集群机器之间通过ssh通信,所以需要在ubuntu14系统中安装ssh

随机推荐