Redisクラスタの構築方法
以下の手順に従うと、Redisクラスタを構築できます。
- 各サーバーに Redis をインストールする複数のサーバーを準備します。
- 各サーバ上の Redis の config ファイルにて、「cluster-enabled」パラメータを yes に設定し、「cluster-config-file」パラメータにファイルパス(例: /etc/redis/redis.cluster.conf)を指定し、「cluster-node-timeout」パラメータを適切な値に設定します。
- 各サーバー上にクラスター構成ファイルなどを格納するディレクトリを作成してください。たとえば、/etc/redis/cluster
- 一つのサーバ上でredis-cliツールを使用してRedisクラスタを作成します。以下のコマンドを実行します:
$ redis-cli --cluster create <ip1>:<port1> <ip2>:<port2> ... <ipN>:<portN> --cluster-replicas <replicas>
それぞれが —- : —- のRedisインスタンスのIPアドレスとポート、および —- がそれぞれのマスターノードのレプリカの数です。
例えば、3つのマスターノードと1つのレプリカを持つRedisクラスターを作成する場合は、以下のコマンドを実行します。
$ redis-cli --cluster create 192.168.0.1:6379 192.168.0.2:6379 192.168.0.3:6379 --cluster-replicas 1
- 別のサーバから、redis-cli ツールを使用してクラスターに追加します。その場合、以下のコマンドを実行してください。
$ redis-cli --cluster add-node <new_node_ip>:<new_node_port> <existing_node_ip>:<existing_node_port>
このうち、: はクラスタに追加する新しいRedisインスタンスの IPアドレスとポート、: はクラスタにすでにあるRedisインスタンスの IPアドレスとポートです。
新規に Redis インスタンスをクラスタに追加するには、次のコマンドを実行します。
$ redis-cli --cluster add-node 192.168.0.4:6379 192.168.0.1:6379
- クラスタでスロットを再割り当てする場合は次のコマンドを実行します:
$ redis-cli --cluster reshard <existing_node_ip>:<existing_node_port>
指示に従って、スロットを新しいRedisインスタンスに再割り当てします。
- 各サーバー上でRedisインスタンスを起動
- redis-cliツールを使用してクラスタに接続し、Redisコマンドを実行して操作できます。
Redisクラスタ構築時は、サーバ間の相互通信を確認し、各Redisインスタンスのbindパラメータの設定値が当該サーバのIPアドレスになっていることを確認してください。また、クラスタのヘルス状態を注視し、問題が発生したノードは速やかに修復してください。