6.利用docker-compose.yml 模拟搭建redis集群

146 阅读2分钟

1.创建文件夹

mkdir -p /redis/redis-cluster/redis-01 (redis-02~06)

2.文件夹内分别创建redis.conf文件

#每个节点的端口,我们六个节点端口分别是(6379 6380 6381 6382 6383 6384)
port 6379
#表示打开集群模式
cluster-enabled yes
#节点的配置文件名,启动后会自动生成到你配置文件 dir ./ 命令指定的目录中
cluster-config-file nodes-6379.conf
#设置节点的关联时间(毫秒),超过该时间slave认为master宕机,自动升级
cluster-node-timeout 15000
#集群节点ip
#这个IP需要特别注意一下,如果要对外提供访问功能,需要填写宿主机的IP,如果不填或者填写docker分配的IP,可能会导致部分集群节点在跳转时失败。
#整合springboot时候我们用这个IP 加端口
cluster-announce-ip 182.43.202.xx

3.创建docker-compose.yml在redis-cluster文件夹下:

version: "3.0"

services:
  redis-1:
    image: redis:latest
    container_name: redis-1
    ports:
      - 6379:6379
      - 16379:16379   #集群总线端口 默认就是redis端口加1000,每个节点都要打开
    volumes:
      - $PWD/redis-1/redis.conf:/redis.conf
      - $PWD/redis-1/data:/data
    command: redis-server /redis.conf

  redis-2:
    image: redis:latest
    container_name: redis-2
    ports:
      - 6380:6380
      - 16380:16380   #集群总线端口 默认就是redis端口加1000,每个节点都要打开
    volumes:
      - $PWD/redis-2/redis.conf:/redis.conf
      - $PWD/redis-2/data:/data
    command: redis-server /redis.conf

  redis-3:
    image: redis:latest
    container_name: redis-3
    ports:
      - 6381:6381
      - 16381:16381   #集群总线端口 默认就是redis端口加1000,每个节点都要打开
    volumes:
      - $PWD/redis-3/redis.conf:/redis.conf
      - $PWD/redis-3/data:/data
    command: redis-server /redis.conf

  redis-4:
    image: redis:latest
    container_name: redis-4
    ports:
      - 6382:6382
      - 16382:16382   #集群总线端口 默认就是redis端口加1000,每个节点都要打开
    volumes:
      - $PWD/redis-4/redis.conf:/redis.conf
      - $PWD/redis-4/data:/data
    command: redis-server /redis.conf

  redis-5:
    image: redis:latest
    container_name: redis-5
    ports:
      - 6383:6383
      - 16383:16383   #集群总线端口 默认就是redis端口加1000,每个节点都要打开
    volumes:
      - $PWD/redis-5/redis.conf:/redis.conf
      - $PWD/redis-5/data:/data
    command: redis-server /redis.conf

  redis-6:
    image: redis:latest
    container_name: redis-6
    ports:
      - 6384:6384
      - 16384:16384
    volumes:
      - $PWD/redis-6/redis.conf:/redis.conf
      - $PWD/redis-6/data:/data
    command: redis-server /redis.conf

4.docker-compose up启动 并打开阿里云安全组和防火墙 (包括6379 | 16379等)

5.执行集群命令

docker exec -it a986 redis-cli --cluster create --cluster-replicas 1 182.43.202.28:6379  182.43.202.28:6380 182.43.202.28:6381 182.43.202.28:6382 182.43.202.28:6383 182.43.202.28:6384