docker-compose 搭建redis HA集群

本文详细介绍使用Docker搭建Redis高可用集群的过程,包括创建目录、配置docker-compose.yml、启动Redis及Sentinel服务,实现主从复制和故障转移。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker-compose 搭建redis HA集群

一、概要

   本次搭建redis集群采用docker进行构建,采用哨兵模式防止集群宕机

二、创建redis及sentinel目录

   创建redis目录: mkdir -pv /usr/local/docker/redis
   创建sentinel目录:mksir -pv /usr/local/docker/sentinel

三、创建redis服务

1、进入redis目录
     cd /usr/local/docker/redis
2、创建docker-compose文件
   touch docker-compose.yml
3、编辑docker-compose文件
    vim docker-compose.yml
4、将下面的信息粘贴到docker-compose.yml中,并保存
    version: '3.4'
       services:
           master:
           image: redis
           container_name: redis-master
           restart: always
           command: redis-server --port
           ports: 
              - 6379:6379
           #network_mode: "host"

         slave1:
           image: redis
		  container_name: redis-slave-1
          restart: always
          command: redis-server --slaveof redis-master 6379 
          ports: 
             - 6380:6379
          #network_mode: "host"

     slave2:
       image: redis
       container_name: redis-slave-2
       restart: always
       command: redis-server --slaveof redis-master 6379 
       ports:
          - 6381:6379
      #network_mode: "host"
5、启动redis集群
   docker-compose up -d  
6、查看集群是否启动成功
   docker ps
   如果启动出现如下图标识启动成功

在这里插入图片描述

四、创建sentinel服务

1、进入sentinel目录
    cd  /usr/local/docker/sentinel
2、创建docker-compose文件
    touch docker-compose.yml
3、编辑docker-compose文件
    vim docker-compose.yml
4、将下面的信息粘贴到docker-compose.yml中,并保存
 version: '3'
	services:
	  sentinel1:
	    image: redis
	    container_name: redis-sentinel-1
	    command: redis-sentinel /usr/local/etc/sentinel.conf
	    restart: always
	    #network_mode: "host"
	    ports:
	      - 26379:26379
	    volumes:
	      - ./sentinel1.conf:/usr/local/etc/sentinel.conf
	
	  sentinel2:
	    image: redis
	    container_name: redis-sentinel-2
	    command: redis-sentinel /usr/local/etc/sentinel.conf
	    restart: always
	    #network_mode: "host"
	    ports:
	      - 26380:26379
	    volumes:
	      - ./sentinel2.conf:/usr/local/etc/sentinel.conf
	
	  sentinel3:
	    image: redis
	    container_name: redis-sentinel-3
	    command: redis-sentinel /usr/local/etc/sentinel.conf
	    restart: always
	    #network_mode: "host"
	    ports:
	      - 26381:26379
	    volumes:
	      - ./sentinel3.conf:/usr/local/etc/sentinel.conf
5、创建sentinel.conf文件
   touch  /usr/local/docker/sentinel/sentinel.conf
6、编辑sentinel.conf文件
   vim  /usr/local/docker/sentinel/sentinel.conf   
7、将下面的信息粘贴到sentinel.conf中,并保存
	port 26379
	dir /tmp
	
	sentinel monitor mymaster 192.168.88.134 6379 2
	sentinel down-after-milliseconds mymaster 30000
	sentinel parallel-syncs mymaster 1
	sentinel failover-timeout mymaster 180000
	sentinel deny-scripts-reconfig yes
8、将刚刚创建的sentinel.conf在创建3份,一模一样就可以了
	cp sentinel.conf sentinel1.conf
	cp sentinel.conf sentinel2.conf
	cp sentinel.conf sentinel3.conf
9、启动sentinel服务
	docker-compose up -d
10、查看集群是否启动成功
    docker ps
    如果启动出现如下图标识启动成功

在这里插入图片描述

五、查看进入哨兵节点,查看是否有主节点

1、进入运行中的sentinel容器
 	docker exec -it b1eb09f2700a bash 
2、连接到redis中
 	redis-cli -p 26379
3、输入如下命令“sentinel master mymaster”查看集群是否成功,如果出现下面信息表示集群搭建成功

在这里插入图片描述
GitHub样例请参见:https://github.com/LuckyToMeet-Dian-N/DevelopmentUtils
注意:GitHub样例为转载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值