Redisのレプリケーション機能(Master-Slave構成)は、システムの可用性向上と読み取りパフォーマンスの最適化に不可欠な仕組みです。以下に、マスターおよびスレーブサーバーの具体的な設定プロセスを記載します。
前提環境
Redisがマスター用・スレーブ用のそれぞれのサーバーにインストールされ、サービスが起動可能な状態であることを確認してください。
マスターサーバーの設定手順
マスター側の設定ファイル(通常は /etc/redis/redis.conf)を編集します。
# 外部からの接続を許可する場合はIPを指定(例: 0.0.0.0 または特定のローカルIP)
bind 0.0.0.0
port 6379
daemonize yes
# このサーバーがマスターであることを明示するため、replicaofは無効化します
# replicaof no one
設定完了後、サービスを再起動して変更を適用します。
sudo systemctl restart redis.service
スレーブサーバーの設定手順
スレーブ側の設定ファイルを開き、マスターへの接続情報を追加します。
bind 0.0.0.0
port 6379
daemonize yes
# マスターサーバーのIPとポートを指定して同期を開始します
replicaof 192.168.1.10 6379
設定を保存したら、Redisサービスを再起動します。
sudo systemctl restart redis.service
レプリケーションの動作検証
設定が正しく反映されているか、以下の手順で確認します。
まず、Redisのログファイル(/var/log/redis/redis-server.log 等)を確認し、スレーブがマスターへの接続に成功した旨のログが出力されているかチェックします。
次に、redis-cli を使用してデータの同期をテストします。
- マスター側でのデータ書き込み
redis-cli -h 192.168.1.10 192.168.1.10:6379> SET system_status "operational" OK - スレーブ側でのデータ読み込み
スレーブサーバーに接続し、データが同期されているか確認します。
値が正しく返ってくれば、レプリケーションは成功しています。redis-cli 127.0.0.1:6379> GET system_status "operational"
また、INFO replication コマンドを実行することで、現在のレプリケーションステータス(roleや接続されているスレーブ数など)を詳細に確認できます。
redis-cli INFO replication
設定時の注意点
- ファイアウォール設定により、マスターのRedisポート(デフォルト6379)への通信が許可されているか確認してください。
- 本番環境ではデータ損失防止のため、永続化設定(RDBやAOF)の有効化が推奨されます。
- セキュリティのため、
requirepassを使用したパスワード認証の設定を検討してください。