Redisにおけるマスター・スレーブレプリケーションの構築手順

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 を使用してデータの同期をテストします。

  1. マスター側でのデータ書き込み
    redis-cli -h 192.168.1.10
    192.168.1.10:6379> SET system_status "operational"
    OK
    
  2. スレーブ側でのデータ読み込み
    スレーブサーバーに接続し、データが同期されているか確認します。
    redis-cli
    127.0.0.1:6379> GET system_status
    "operational"
    
    値が正しく返ってくれば、レプリケーションは成功しています。

また、INFO replication コマンドを実行することで、現在のレプリケーションステータス(roleや接続されているスレーブ数など)を詳細に確認できます。

redis-cli INFO replication

設定時の注意点

  • ファイアウォール設定により、マスターのRedisポート(デフォルト6379)への通信が許可されているか確認してください。
  • 本番環境ではデータ損失防止のため、永続化設定(RDBやAOF)の有効化が推奨されます。
  • セキュリティのため、requirepass を使用したパスワード認証の設定を検討してください。

タグ: redis Master-Slave database Server Configuration system administration

7月13日 00:47 投稿