ホームページ  >  記事  >  データベース  >  Docker-Compose が Redis クラスターを構築する方法

Docker-Compose が Redis クラスターを構築する方法

PHPz
PHPz転載
2023-05-30 16:46:221704ブラウズ

1. クラスタ構成

  • 3 マスター 3 スレーブ

  • テスト専用なので、ここではシミュレーションに 1 台のサーバーのみを使用します

redis list

Docker-Compose が Redis クラスターを構築する方法

2. redis.conf を書き込みます

ストレージ Redis 用のサーバー上にディレクトリを作成しますクラスター展開ファイル。ここに指定したパスは /root/redis-cluster

/opt/docker/redis-cluster ディレクトリに redis-1、redis-2、redis-3、redis-4、redis-5 を作成します。 redis-6 フォルダー

mkdir -p /opt/docker/redis-cluster/{redis-1,redis-2,redis-3,redis-4,redis-5,redis-6}
 
#创建持久化目录
mkdir -p /opt/docker/redis-cluster/redis-1/data
mkdir -p /opt/docker/redis-cluster/redis-2/data
mkdir -p /opt/docker/redis-cluster/redis-3/data
mkdir -p /opt/docker/redis-cluster/redis-4/data
mkdir -p /opt/docker/redis-cluster/redis-5/data
mkdir -p /opt/docker/redis-cluster/redis-6/data

3. 各 redis-* フォルダーに redis.conf ファイルを作成し、次の内容を書き込みます:

cluster-enabled yes # 开启集群
cluster-config-file nodes.conf # 集群配置文件
cluster-node-timeout 5000 # 集群节点多少时间未响应视为该节点丢失
appendonly yes
port 6379 # redis监听端口
masterauth passwd123  #设置master节点密码
requirepass passwd123 #设置密码

注: によれば、ポート値をすべて 6379 にすることはできません。上記のredisリストで設定したポート番号のうち、redis-1~redis-6のポート番号6379~6384を順番に設定します

4 docker-compose.ymlファイルを記述します

daocloud をここに直接入力します。 提供された Redis イメージのアドレスは、daocloud.io/library/redis:6.0.4

/root/redis-cluster フォルダーに docker-compose.yml ファイルを作成します。

docker-compose.yml ファイルの内容は次のとおりです:

version: '3.1'
services:
  # redis1配置
  redis1:
    image: daocloud.io/library/redis:6.0.4
    container_name: redis-1
    restart: always
    network_mode: "host"
    volumes:
      - /opt/docker/redis-cluster/redis-1/data:/data
      - /opt/docker/redis-cluster/redis-1/redis.conf:/usr/local/etc/redis/redis.conf
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
  # redis2配置
  redis2:
    image: daocloud.io/library/redis:6.0.4
    container_name: redis-2
    restart: always
    network_mode: "host"
    volumes:
      - /opt/docker/redis-cluster/redis-2/data:/data
      - /opt/docker/redis-cluster/redis-2/redis.conf:/usr/local/etc/redis/redis.conf
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
  # redis3配置
  redis3:
    image: daocloud.io/library/redis:6.0.4
    container_name: redis-3
    restart: always
    network_mode: "host"
    volumes:
      - /opt/docker/redis-cluster/redis-3/data:/data
      - /opt/docker/redis-cluster/redis-3/redis.conf:/usr/local/etc/redis/redis.conf
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
  # redis4配置
  redis4:
    image: daocloud.io/library/redis:6.0.4
    container_name: redis-4
    restart: always
    network_mode: "host"
    volumes:
      - /opt/docker/redis-cluster/redis-4/data:/data
      - /opt/docker/redis-cluster/redis-4/redis.conf:/usr/local/etc/redis/redis.conf
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
  # redis5配置
  redis5:
    image: daocloud.io/library/redis:6.0.4
    container_name: redis-5
    restart: always
    network_mode: "host"
    volumes:
      - /opt/docker/redis-cluster/redis-5/data:/data
      - /opt/docker/redis-cluster/redis-5/redis.conf:/usr/local/etc/redis/redis.conf
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
  # redis6配置
  redis6:
    image: daocloud.io/library/redis:6.0.4
    container_name: redis-6
    restart: always
    network_mode: "host"
    volumes:
      - /opt/docker/redis-cluster/redis-6/data:/data
      - /opt/docker/redis-cluster/redis-6/redis.conf:/usr/local/etc/redis/redis.conf
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]

コンテナを起動し、コマンドを実行します:

#启动容器
docker-compose -f xxx.yaml up -d

Docker-Compose が Redis クラスターを構築する方法

##5. 開始クラスター

入力するコンテナを見つけます。ここでは、redis-1 を選択して入力します。コンテナーに入ったら、次のコマンドを入力してクラスターを開始します。

redis-cli --cluster create 192.168.66.180:6379 \
192.168.66.180:6380 \
192.168.66.180:6381 \
192.168.66.180:6382 \
192.168.66.180:6383 \
192.168.66.180:6384 \
--cluster-replicas 1

Docker-Compose が Redis クラスターを構築する方法

次の図は、成功を示しています。

Docker-Compose が Redis クラスターを構築する方法

6. テスト

redis-cli コマンドを使用して、クラスター内の任意のノードに接続します。クラスターの IP アドレスに ping できるコンピューターでテストしました。ここではローカル コンピューターを使用しました。

6.1 ノードのプロパティの表示

redis-cli -c -h 192.168.66.180 -p 6379
192.168.66.180:6379> cluster info

以下のように表示されます。これがクラスターです。ヘルスステータス

Docker-Compose が Redis クラスターを構築する方法

#6.2 ノード情報の表示

cluster nodes

Docker-Compose が Redis クラスターを構築する方法#スレーブ、マスター、自分、その他のキーワードに注意してください写真の中の。

Docker-Compose が Redis クラスターを構築する方法6.3 値を挿入します

192.168.66.180:6379> set test 'hello world'
-> Redirected to slot [6918] located at 192.168.66.180:6380
OK
192.168.66.180:6380>

Docker-Compose が Redis クラスターを構築する方法注: ここでは、データ シャードが配置されているノードが自動的に切り替わります。スライスに基づいているため、接続されたノードが 192.168.1.4:6380

get test

168.66.180:6379> set test 'hello world'
-> Redirected to slot [6918] located at 192.168.66.180:6380
OK
192.168.66.180:6380> get test
"hello world"
192.168.66.180:6380>

に変更されたことが以下でわかります。これは、クエリがシャードで実行されるためです。データは見つかっているため、接続されているノードは変更されていません。

7. パスワードを追加します:

7.1 redis.conf ファイルを編集します

#为redis.conf文件添加如下配置。这里设置密码为123456
masterauth 123456
requirepass 123456

7.2 docker-compose.yml ファイルを編集します

#为docker-compose.yml中每个容器添加如下配置:
environment:
  - REDISCLI_AUTH=123456

7.3 に接続しますクラスター

redis-cli -c -h 192.168.66.180 -p 6379 -a 123456

以上がDocker-Compose が Redis クラスターを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。