利用docker-compose 搭建redis哨兵集群

该文章详细介绍了如何利用docker-compose在本地创建一个Redis主从哨兵集群。首先在/data/redis/目录下创建redis和sentinel子目录,然后分别编写两个docker-compose.yml文件,一个用于设置redis主从节点,另一个用于配置sentinel监控。在每个sentinel配置文件中定义了哨兵监控主节点的参数。最后,提供了一个启动脚本来依次启动redis和sentinel服务。

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

利用docker-compose 搭建redis哨兵集群

1.搭建搭建redis

mkdir /data/redis/{redis,sentinel} -pv

cd /data/redis/redis

vim docker-compose.yml

version: "4.1"
services:
  master:
    image: redis:latest
    container_name: redis-master
    restart: always
    command: bash -c "redis-server --protected-mode no --slave-announce-ip 192.168.2.11 --slave-announce-port 6377 --requirepass 'redis-123' --cluster-enabled yes"
    ports:
      - 6377:6379
  slave1:
    image: redis:latest
    container_name: redis-slave-1
    restart: always
    ports:
      - 6380:6379
    command:  bash -c "redis-server --protected-mode no --slaveof 192.168.2.11 6377 --slave-announce-ip 192.168.2.11 --slave-announce-port 6380 --requirepass 'redis-123' --masterauth 'redis-123'"

  slave2:
    image: redis:latest
    container_name: redis-slave-2
    restart: always
    ports:
      - 6381:6379
    command: bash -c "redis-server --protected-mode no --slaveof 192.168.2.11 6377 --slave-announce-ip 192.168.2.11 --slave-announce-port 6381 --requirepass 'redis-123' --masterauth 'redis-123'"

networks:
  default:
      name: redis_default
      external: true

2.搭建哨兵集群

cd /data/redis/sentinel

vim docker-compose.yml

version: '4.1'
services:
  sentinel1:
    image: redis:latest
    container_name: redis-sentinel-1
    ports:
      - 26379:26379
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    restart: always
    volumes:
      - ./sentinel1.conf:/usr/local/etc/redis/sentinel.conf

  sentinel2:
    image: redis:latest
    container_name: redis-sentinel-2
    ports:
      - 26380:26379
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    restart: always
    volumes:
      - ./sentinel2.conf:/usr/local/etc/redis/sentinel.conf

  sentinel3:
    image: redis:latest
    container_name: redis-sentinel-3
    ports:
      - 26381:26379
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    restart: always
    volumes:
      - ./sentinel3.conf:/usr/local/etc/redis/sentinel.conf

networks:
  default:
      name: redis_default
      external: true

vim sentinel.conf

protected-mode no
sentinel monitor mymaster 192.168.2.11 6379 2
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
# mymaster 为集群名字,可以自定义  
# IP 改为自己的ip

vim sentinel1.conf

protected-mode no
port 26379
daemonize no
sentinel monitor mymaster 192.168.2.11 6377 2
sentinel auth-pass mymaster 'redis-123'
sentinel down-after-milliseconds mymaster 3000
sentinel failover-timeout mymaster 180000

#注:登录密码改为自己上百年配置文件设置的密码
#6377 为master的端口

cp sentinel1.conf sentinel2.conf

cp sentinel1.conf sentinel3.conf

2.2启动脚本

vim redis-cluster-start.sh

cd /data/redis/
docker-compose up -d

sleep 25s
echo "wait 25 second"

cd data/redis/sentinel/
docker-compose up -d

3.验证集群

在这里插入图片描述

注:只能使用ip登录,回环地址不能登录

​ 6377 是master 的端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值