docker redis clusterクラスタモードの構築


一、redis容器の作成
docker-composeを使用してredisコンテナ起動コマンドを作成するには
docker-compose -f docker-compose-redis.yaml up -d
そのうちdocker-compose-redis.yamlの構成内容は以下の通りである.
version: "3.4"
services:
  redis:
    image: redis
    container_name: redis-test-6383
    command: redis-server /etc/redis/redis.conf
    ports:
      - "6383:6379"
    volumes:
      - ./redis-test/data:/data
      - ./redis-test/conf/redis.conf:/etc/redis/redis.conf
二、redisクラスタを6つのredisコンテナで構築し、3組の1主一従クラスタモードを構築し、redis-cluster.yaml配置ファイルを作成し、内容は以下の通りである.
version: "3.4"

x-image:
  &default-image
  redis
x-command:
  &default-command
  redis-server /etc/redis/redis.conf
  
services:
  redis1:
    image: *default-image
    container_name: redis-m1-1001
    command: *default-command
    ports:
      - "1001:6379"
    volumes:
      - ./redis-m1-1001/data:/data
      - ./redis-m1-1001/conf/redis.conf:/etc/redis/redis.conf
      
  redis2:
    image: *default-image
    container_name: redis-m2-1002
    command: *default-command
    ports:
      - "1002:6379"
    volumes:
      - ./redis-m2-1002/data:/data
      - ./redis-m2-1002/conf/redis.conf:/etc/redis/redis.conf
      
  redis3:
    image: *default-image
    container_name: redis-m3-1003
    command: *default-command
    ports:
      - "1003:6379"
    volumes:
      - ./redis-m3-1003/data:/data
      - ./redis-m3-1003/conf/redis.conf:/etc/redis/redis.conf
      
  redis4:
    image: *default-image
    container_name: redis-s1-1004
    command: *default-command
    ports:
      - "1004:6379"
    volumes:
      - ./redis-s1-1004/data:/data
      - ./redis-s1-1004/conf/redis.conf:/etc/redis/redis.conf
      
  redis5:
    image: *default-image
    container_name: redis-s2-1005
    command: *default-command
    ports:
      - "1005:6379"
    volumes:
      - ./redis-s2-1005/data:/data
      - ./redis-s2-1005/conf/redis.conf:/etc/redis/redis.conf
      
  redis6:
    image: *default-image
    container_name: redis-s3-1006
    command: *default-command
    ports:
      - "1006:6379"
    volumes:
      - ./redis-s3-1006/data:/data
      - ./redis-s3-1006/conf/redis.conf:/etc/redis/redis.conf
6つのredisコンテナを作成した後、彼らのipとポートは以下の通りです.
redis-m1-1001 172.18.0.6:6379 redis-m2-1002 172.18.0.8:6379 redis-m3-1003 172.18.0.4:6379 redis-s1-1004 172.18.0.5:6379 redis-s2-1005 172.18.0.3:6379 redis-s3-1006 172.18.0.7:6379
redis clusterは5.0以降rubyスクリプトredis-tribをキャンセルしました.rbのサポート(手動コマンドラインでクラスタを追加する方法は変わらない)、redis-cliに集合する1.クラスタマスターノードを作成する
redis-cli --cluster create 172.18.0.6:6379 172.18.0.8:6379 172.18.0.4:6379
2.クラスタスレーブノードを順次追加
redis-cli --cluster add-node 172.18.0.7:6379 172.18.0.4:6379 --cluster-slave --cluster-master-id d8f1423a00fd79d9b72ebe1f7481626b54f0c508 
172.18.0.7ノードを172.18.0.4ノードのクラスタに追加しnode_とするidはd8f1423a00fd79d9b72ebe1f7481626b54f0c508のスレーブノードである.--cluster-master-idを指定しないと、任意のプライマリノードにランダムに割り当てられます.3.任意に1つのクラスタノードを接続し、クラスタを検査する
cluster info
4.ノード指定IP、ポート、node_を削除idはノードを削除し、ノードから直接削除することができ、メインノードは直接削除することができず、削除すると、そのノードはshutdownされます.
redis-cli --cluster del-node 172.18.0.5:6379 f6a6957421b80409106cb36be3c7ba41f3b603ff
リファレンスリンクhttps://www.cnblogs.com/zhoujinyi/p/11606935.html