redisクラスターのread only設定
Redisクラスタをリードオンリーに設定する手順を以下に示します。
- Redisクラスタのマスタースレーブリプリケーションを設定する。1つのRedisノードをマスターとして設定し、その他のノードをスレーブとして設定する。
- マスターノードでslave-read-onlyパラメータをyesに設定すると、スレーブノードは読み込み専用の操作しか行えなくなります。このパラメータはredis.confファイルを変更することで設定可能です。
- スレーブノードにslave-read-onlyパラメータをyesに設定し、slaveofパラメータをマスターノードに設定してください。そうすることで、スレーブノードはマスターノードからのみデータを受信し、読み取り専用操作のみが可能になります。これらパラメータは、redis.confファイルを編集することで設定できます。
- 主ノードにrequirepassパラメータをセットしてアクセス用のパスワードを設定し、認証されたクライアントのみ書き込み操作可能にする
Redisのクラスタモードでは、書き込み操作はスレーブノードに直接行うことはできないことに注意してください。スレーブノードはマスターノードからデータを同期できますが、読み取り専用操作のみが許可されています。書き込み操作を実行する必要がある場合は、マスターノードに接続する必要があります。
Redis Sentinel を利用して Redis クラスタのリードオンリーの構成を実現することもできます。その構成では Redis Sentinel ノードをリードオンリープロキシとして設定し、すべての読み取り要求を従属ノードに転送できます。これにより Redis ノードの構成を変更せずにリードオンリー操作を実現できます。