目次
1. クラスタ構成
2. redis.conf を書き込みます
3. 各 redis-* フォルダーに redis.conf ファイルを作成し、次の内容を書き込みます:
4 docker-compose.ymlファイルを記述します
cluster nodes
ログイン後にコピー
" >
cluster nodes
ログイン後にコピー
7.1 redis.conf ファイルを編集します
7.2 docker-compose.yml ファイルを編集します
7.3 に接続しますクラスター
ホームページ データベース Redis Docker-Compose が Redis クラスターを構築する方法

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

May 30, 2023 pm 04:46 PM
redis docker docker-compose

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dockerデスクトップの使用方法 Dockerデスクトップの使用方法 Apr 15, 2025 am 11:45 AM

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

Dockerバージョンを読む方法 Dockerバージョンを読む方法 Apr 15, 2025 am 11:51 AM

Dockerバージョンを取得するには、次の手順を実行できます。Dockerコマンド「Docker -version」を実行して、クライアントバージョンとサーバーバージョンを表示します。 MacまたはWindowsの場合は、DockerデスクトップGUIのバージョンタブまたはDockerデスクトップメニューのバージョン情報を表示することもできます。

Dockerでミラーを作成する方法 Dockerでミラーを作成する方法 Apr 15, 2025 am 11:27 AM

Docker画像を作成する手順:ビルド命令を含むDockerFileを書きます。 Docker Buildコマンドを使用して、ターミナルで画像を作成します。画像にタグを付け、Dockerタグコマンドを使用して名前とタグを割り当てます。

Dockerの画像を更新する方法 Dockerの画像を更新する方法 Apr 15, 2025 pm 12:03 PM

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

Dockerのファイルを外部にコピーする方法 Dockerのファイルを外部にコピーする方法 Apr 15, 2025 pm 12:12 PM

Dockerの外部ホストにファイルをコピーする方法:Docker CPコマンドを使用:Docker CP [Options]< Container Path> <ホストパス>。データボリュームの使用:ホストにディレクトリを作成し、-vパラメーターを使用してコンテナを作成するときにディレクトリをコンテナにマウントして、双方向ファイルの同期を実現します。

Dockerコンテナの名前を確認する方法 Dockerコンテナの名前を確認する方法 Apr 15, 2025 pm 12:21 PM

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

中国のDocker画像ソースを変更する方法 中国のDocker画像ソースを変更する方法 Apr 15, 2025 am 11:30 AM

国内のミラーソースに切り替えることができます。手順は次のとおりです。1。構成ファイル/etc/docker/daemon.jsonを編集し、ミラーソースアドレスを追加します。 2。保存して終了した後、Docker Service Sudo SystemCtlを再起動してDockerを再起動して、画像のダウンロード速度と安定性を改善します。

Docker画像を保存する方法 Docker画像を保存する方法 Apr 15, 2025 am 11:54 AM

Dockerに画像を保存するには、Docker Commitコマンドを使用して、指定されたコンテナの現在の状態、Syntax:Docker Commit [Options]コンテナID画像名を含む新しい画像を作成できます。画像をリポジトリに保存するには、Docker Pushコマンド、Syntax:Docker Push Image Name [:Tag]を使用できます。保存された画像をインポートするには、Docker Pullコマンド、Syntax:Docker Pull Image Name [:Tag]を使用できます。

See all articles