DockerでRedisクラスタを構築の方法
DockerでRedisクラスタを構築するには、以下の手順に従います。
- ターミナルで次のコマンドを実行し、新しいDockerネットワークを作成:
- docker network create redis-net
- 以下のコマンドを実行して、3つのRedisマスターノードコンテナを作成します。
- docker run -d –name redis-master1 –net redis-net -p 7001:6379 redis:latest redis-server –appendonly yes –requirepass “password” &&\
docker run -d –name redis-master2 –net redis-net -p 7002:6379 redis:latest redis-server –appendonly yes –requirepass “password” &&\
docker run -d –name redis-master3 –net redis-net -p 7003:6379 redis:latest redis-server –appendonly yes –requirepass “password” - これにより3つのRedisコンテナが作成され、redis-netネットワークに接続されます。各コンテナは異なるポートで実行され、–requirepassパラメータを使用してパスワードが”password”に設定されています。
- 3つのRedisスレーブコンテナを作成するために以下のコマンドを実行します。
- docker run -d –name redis-slave1 –net redis-net -p 7004:6379 redis:latest redis-server –appendonly yes –requirepass “password” –slaveof redis-master1 6379 &
docker run -d –name redis-slave2 –net redis-net -p 7005:6379 redis:latest redis-server –appendonly yes –requirepass “password” –slaveof redis-master2 6379 &
docker run -d –name redis-slave3 –net redis-net -p 7006:6379 redis:latest redis-server –appendonly yes –requirepass “password” –slaveof redis-master3 6379 - これによって Redis スレーブノードコンテナが 3 つ作成され、–slaveof パラメーターを使用して対応する Redis マスターノードに接続されます。
- Redis Sentinel コンテナを作成する: 以下のコマンドを実行して 3 つの Redis Sentinel コンテナを作成します。
- docker run -d –name redis-sentinel1 –net redis-net -p 26379:26379 redis:latest redis-sentinel –sentinel announce-ip <IPアドレス> –sentinel announce-port 26379 –sentinel monitor mymaster redis-master1 6379 2 &&\
docker run -d –name redis-sentinel2 –net redis-net -p 26380:26379 redis:latest redis-sentinel –sentinel announce-ip <IPアドレス> –sentinel announce-port 26379 –sentinel monitor mymaster redis-master2 6379 2 &&\
docker run -d –name redis-sentinel3 –net redis-net -p 26381:26379 redis:latest redis-sentinel –sentinel announce-ip <IPアドレス> –sentinel announce-port 26379 –sentinel monitor mymaster redis-master3 6379 2 - Redis哨兵用コンテナを3つ作成して、「–sentinel」パラメーターを使用して対応するRedisマスターノードを監視するように設定します。
<IPアドレス>はホストのIPアドレスに置き換える
- 任意のプライマリーノードコンテナに Redis クライアントで接続し、CLUSTER NODES コマンドを実行してクラスタ構築の成功を確認します。
- docker exec -it redis-master1 redis-cli -a “password” 127.0.0.1:6379> CLUSTER NODES
- Redisクラスタ構築が成功すると、各ノードの情報が表示されます。
以上のステップで、3つのプライマリノード、3つのセカンダリノード、3つのセンチネルノードを含むRedisクラスターがDocker上に構築されます。