docker redis clusterクラスタモードの構築
16232 ワード
一、redis容器の作成
docker-composeを使用してredisコンテナ起動コマンドを作成するには
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.クラスタマスターノードを作成する
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