Docker中配置Redis clusters集群

1.Redis cluster 除了当前默认的 6379 端口, 还会在这端口的基础上 +10000 开个总线 (bus) 端口 16379,bus 是控制集群之间的通信通道, 搭建 clusters 必不可少

2. 在 docker-compose 中映射出去后, 需要配置–cluster-announce 相关参数告知本地的集群, 不然即使在 create 过程 host.docker.internal:6380 能找到相应主机, 但该主机内部会以为自己是 localhost:6379 最后导致错误

了解这两点, 就很容易实现 Docker 中的 Redis 集群搭建了

docker-compose.yml

services:
  redis0: 
    image: redis:latest 
    ports:
      - "6380:6379"
      - "16380:16379"
    command: >
      redis-server 
      --appendonly yes 
      --cluster-enabled yes 
      --cluster-config-file nodes.conf
      --cluster-announce-ip host.docker.internal
      --cluster-announce-port 6380
      --cluster-announce-bus-port 16380
    volumes:
      - redis0-data:/data

  redis1: 
    image: redis:latest 
    ports:
      - "6381:6379"
      - "16381:16379"
    command: >
      redis-server 
      --appendonly yes 
      --cluster-enabled yes 
      --cluster-config-file nodes.conf 
      --cluster-announce-ip host.docker.internal
      --cluster-announce-port 6381
      --cluster-announce-bus-port 16381
    volumes:
      - redis1-data:/data

  redis2: 
    image: redis:latest 
    ports:
      - "6382:6379"
      - "16382:16379"
    command: >
      redis-server 
      --appendonly yes 
      --cluster-enabled yes 
      --cluster-config-file nodes.conf 
      --cluster-announce-ip host.docker.internal
      --cluster-announce-port 6382
      --cluster-announce-bus-port 16382
    volumes:
      - redis2-data:/data

volumes:
  redis0-data:
  redis1-data:
  redis2-data:

在文件目录下执行指令

docker-compose up -d
docker exec -it redis0 redis-cli --cluster create host.docker.internal:6380 host.docker.internal:6381 host.docker.internal:6382 --cluster-replicas 0 --cluster-yes

Docker 中配置 Redis clusters 集群

 

这样就已经搭建好了, 我们进入测试

docker exec -it redis0 redis-cli -c
# 随便输入

 

 

可以看到很丝滑的分片运作, 集群搭建成功!

正文完
 0
admin
版权声明:本站原创文章,由 admin 于2024-12-12发表,共计1389字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。