redisのインストールについては、master/slaveともに、既に完了している前提で進めます。
インストールについては、こちらを参照
レプリケーションの設定は、簡単にできましたので手順を記載します。
やりたいこと
- サーバ間のレプリケーション設定(master/slave)
redisのバージョン(master/slave)
redis-server --version
Redis server v=3.2.4 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=e24ba9f950034b39
今回検証したのは、master, slaveともに上記バージョンをインストールしました。
インストール手順については、こちら
疎通確認
初期設定のままだと、接続設定がlocalhostしか許可されていないので、アクセスができない
redis-cli -h <接続先のホスト>
Could not connect to Redis at <接続先のホスト>:6379: Connection refused
not connected>
恐らく、上記のようなErrorメッセージが出力される
slaveからmasterへの接続設定
・ conf修正
vim /etc/redis/redis.conf
bind 127.0.0.1 → bind 0.0.0.0
master/slaveともに、上記設定を反映
・ redisの再起動
systemctl restart redis.service
・ 疎通確認
redis-cli -h <接続先のホスト>
<接続先のホスト>:6379>
レプリケーション設定
・ slaveサーバのconf修正
ここまでで、master, slave間の疎通は取れているかと思いますので、slaveの設定を行います。
vim /etc/redis/redis.conf
slaveof <masterのIP> <masterのredisのport番号>
portは、特に設定を変えてなければ、デフォルトの6379を記載します。
・ 再起動
systemctl restart redis.service
レプリケーションの確認
ここまでくれば、レプリケーション設定が全て完了しています!
思ったより、簡単!
最後に、設定されているかどうかを確認していきます。
・ slaveサーバの設定確認
redis-cli
127.0.0.1:6379> INFO
# Replication
role:slave
Replication欄に、設定したサーバが記載されていれば、オッケーです。
・ slaveサーバの同期確認
keys *
masterでsetしているデータが、slaveにも反映されている
無事、同期されていることを確認
・ masterサーバの設定確認
redis-cli
127.0.0.1:6379> INFO
# Replication
role:master
masterサーバ側でも、役割がmasterに割り当てられていることを確認。
slave側のIPも記載されている。