Redisとは
インメモリで動作するKey-Value型のデータストレージソフトウェア
Redisのクラスター機能
redisを機動しているサーバ複数でクラスターを組むことができ、負荷分散、耐障害に強くなるという特徴がある。
Redisのクラスターのメリット
- データ書き込み時の負荷分散を行える
- マスタースレーブ構成の場合、マスターに障害が発生するとスレーブがマスターに昇格して代わりになることができるという機能が使える
Redisのクラスターのデメリット
- マシン台数が多く必要になる。マスターのみの構成なら最低3台、実運用するなら耐障害を考慮したマスタースレーブ構成に必然的になると思われるがその場合だと最低6台のマシンが必要になる。
メモ
一応動くかどうかテストはしてみた。マスターのみの構成でも最低でサーバ3台用意しないといけないのでなかなか大変だったが、それにしてもこのRedisのクラスターというのはどこの大規模システムで使うことを想定しているのだろうか。最低でも6台のマシン(各マスターとスレーブ)をキャッシュサーバとして使うことを許されるシステムだとしたら全体だったら何十台のサーバが稼働することやら(@ . @)クラクラ
クラスターじゃなくてもっとシンプルにマスターとスレーブのみの構成なら2台でいけるんじゃないか?と思ったが、その場合だとRedis Sentinelという監視用のサーバ3台が別途必要になってきてそれでも最低5台必要ということになる。
Redisクラスターにうってつけのマシンといえば、ラズベリーパイ4B 8GBモデルかもしれない。ラズパイにメモリ8GBも何に使うんだろ・・・と思っていたが、キャッシュサーバとしてこれほど適した用途はないんじゃないだろうか。サーバだけれどキャッシュ用途なのでECC機能は必要ないという点も丁度いい。この性能のキャッシュサーバをAWS ElastiCacheで複数台契約しようとすると恐ろしい金額になる。