通过docker compose在单台机器上创建redis集群测试案列

  • 创建挂载目录
#!/bin/sh
# 在当前文件夹下创建3个文件夹
mkdir data conf logs
# 分别在3个文件夹下创建6个以redis-开头的文件夹
# 这个6个文件夹表示我们创建的6个伪节点redis,用来存放数据配置等等
# 最好赋予 chmod 777 <file> -R 避免权限问题
for dir in data conf logs
do
  for i in {1..6}
  do
    mkdir $dir/redis-$i
  done
done
  • redis 配置,分别放入节点目录 conf 中
port 6379 # 每个节点应不一样
dir /data
loglevel notice
logfile /var/log/redis/redis.log
requirepass 123456 # 密码
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize no
cluster-announce-ip 192.168.61.133 # 宿主机地址
cluster-announce-port 6379 # 每个节点应不一样
cluster-announce-bus-port 16379 # 每个节点应不一样
  • docker-compose.yml 配置
version: '3'
services:
  redis-1:
    image: redis:6.2.6 # 基础镜像
    container_name: redis-1 # 容器名称
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
    ports: # 映射到宿主机的端口,容器和主机保持一致,不然后面创建集群会有问题的
      - "6379:6379"
      - "16379:16379"
    volumes: # 挂载目录
      - ./conf/redis-1:/usr/local/etc/redis
      - ./data/redis-1:/data
      - ./logs/redis-1:/var/log/redis
    networks:
      - redis-network
    restart: no
  redis-2:
    image: redis:6.2.6
    container_name: redis-2
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
    ports:
      - "6380:6380"
      - "16380:16380"
    volumes:
      - ./conf/redis-2:/usr/local/etc/redis
      - ./data/redis-2:/data
      - ./logs/redis-2:/var/log/redis
    networks:
      - redis-network
    restart: no
  redis-3:
    image: redis:6.2.6
    container_name: redis-3
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
    ports:
      - "6381:6381"
      - "16381:16381"
    volumes:
      - ./conf/redis-3:/usr/local/etc/redis
      - ./data/redis-3:/data
      - ./logs/redis-3:/var/log/redis
    networks:
      - redis-network
    restart: no
  redis-4:
    image: redis:6.2.6
    container_name: redis-4
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
    ports:
      - "6382:6382"
      - "16382:16382"
    volumes:
      - ./conf/redis-4:/usr/local/etc/redis
      - ./data/redis-4:/data
      - ./logs/redis-4:/var/log/redis
    networks:
      - redis-network
    restart: no
  redis-5:
    image: redis:6.2.6
    container_name: redis-5
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
    ports:
      - "6383:6383"
      - "16383:16383"
    volumes:
      - ./conf/redis-5:/usr/local/etc/redis
      - ./data/redis-5:/data
      - ./logs/redis-5:/var/log/redis
    networks:
      - redis-network
    restart: no
  redis-6:
    image: redis:6.2.6
    container_name: redis-6
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
    ports:
      - "6384:6384"
      - "16384:16384"
    volumes:
      - ./conf/redis-6:/usr/local/etc/redis
      - ./data/redis-6:/data
      - ./logs/redis-6:/var/log/redis
    networks:
      - redis-network
    restart: no

networks:
  redis-network:
    driver: bridge
  • 创建集群
# 启动6个redis
docker compose up -d
# 创建集群
redis-cli -h 192.168.61.133 -p 6379 -a 123456 --cluster create 192.168.61.133:6379 192.168.61.133:6380 192.168.61.133:6381 192.168.61.133:6382 192.168.61.133:6383 192.168.61.133:6384 --cluster-replicas 1
# 查看
docker-compose exec redis-1 redis-cli  -h 192.168.20.122 -p 6380
auth root123
cluster info 
cluster nodes
  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值