アプリケーション開発ポータルサイト
ServerNote.NET
Amazon.co.jpでPC関連商品タイムセール開催中!
カテゴリー【RedisDebian
【Redisメモ・4】レプリケーション
POSTED BY
2023-05-01

RedisにもRDBのようにマスター1台+スレーブ複数台といった冗長構成が可能。テストのために同一マシン内でスレーブを立ち上げてみる。

まず取り急ぎsudoでredisユーザーになり、マスタのconfigをコピーしてポートのみ変更。

sudo -u redis -s
cd /etc/redis
cp redis.conf redis-6380.conf
vi redis-6380.conf
port 6380
に変更。

スレーブ起動

/usr/bin/redis-server /etc/redis/redis-6380.conf

起動確認

ps aux | grep redis
redis    14133  0.2  0.3  67032 13232 ?        Ssl  Apr30   3:18 /usr/bin/redis-server 127.0.0.1:6379
redis    14687  0.0  0.2  51672  9608 ?        Ssl  19:51   0:00 /usr/bin/redis-server 127.0.0.1:6380

redisユーザーから抜けて、改めてスレーブに接続し、現在のキー状況を確認する。

exit # sudo -u redis -s の終了

redis-cli -p 6380 # ポート指定接続 (未指定だとマスター(6379))

127.0.0.1:6380> KEYS *
1) "KEY-1"
2) "KEY-2"

オリジナルのredis.confのportを変えただけなので、マスターと同じバックアップファイル(/var/lib/redis/dump.rdb)を読んで起動したため、マスターと同じデータが最初から入っている。
スレーブなのでまず初期化する。

127.0.0.1:6380> FLUSHALL # 自分のメモリデータ初期化コマンド
OK
127.0.0.1:6380> KEYS * # 無くなったのを確認
(empty list or set)

まず手動でレプリケーションを開始してみる。
slaveofコマンドを使う。マスタのIPアドレス、ポートを指定する。

127.0.0.1:6380> SLAVEOF 127.0.0.1 6379 # スレーブモード開始
OK

しばらくたったのち、KEYSコマンドで、マスタのデータが同期できてるか確認する。

127.0.0.1:6380> KEYS *
1) "KEY-1"
2) "KEY-2"

今度はマスター側で、データの追加をしてみる。

redis-cli -p 6379 # マスター

127.0.0.1:6379> SET KEY-3 VALUE-3
OK

ふたたびスレーブ側で、一覧確認する。

redis-cli -p 6380

127.0.0.1:6380> KEYS *
1) "KEY-1"
2) "KEY-2"
3) "KEY-3"

KEY-3が増えていることを確認できた。
スレーブをやめる(抜ける)には、

127.0.0.1:6380> SLAVEOF NO ONE

コマンドで、単独サーバーに戻る。

自分がマスタなのかスレーブなのか、どれくらいメモリを使う設定でそのうちどれぐらい消費しているか等サーバー情報はINFOで適時確認できる。(テスト中なのでmaxmemoryの設定はしていない)

127.0.0.1:6380> INFO
# Memory
maxmemory:0
used_memory:1928896

# Replication
role:slave # 今の自分はスレーブモード
master_host:127.0.0.1
master_port:6379

取り急ぎでのレプリケーション確認が終わったので、スレーブredis-6380.confをちゃんと設定する。

/etc/redis/redis-6380.conf

port 6380 # ポート変更
slaveof 127.0.0.1 6379 # スレーブモード&マスター接続情報
save "" # スレーブなのでバックアップなし
appendonly yes # スレーブなのでバックアップなし

今回テストのため同一マシン内だからスレーブがバックアップダンプする意味は無いが、マシンが分かれているのならパフォーマンスを考えないならバックアップするのもあり。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】