redis高可用性ソリューション(sentinel,cluster)
2441 ワード
sentinel(哨兵)
1説明:
master-slaveのグループでは、sentinelシステムがmaster状態を監視するために使用され、masterがダウンタイムした場合、古いmasterの代わりに新しいmasterを自動的にルールに従ってslaveから選択します.
古いmasterが再びオンラインになると、新しいmasterのslaveとして実行されます.
2起動
$ redis-sentinel sentinel.conf
または
$ redis-server sentinel.conf --sentinel
sentinelが起動するサーバとしてクライアントが送信できるコマンドはPING、SENTINEL、INFO、SUBSCRIBE、UNSUBSCRIBE、PSUBSCRIBE、PUNSUBSSCRIBE、PUNSUBSSCRIBEのみで、起動してもAOF、RDBファイルはロードされません
3構成
4主観的失効と客観的失効
主観的な失効:sentinelがサーバのオフラインを判断し、down-after-millisecondsの設定値に基づいて
客観的失効:sentinelシステムはmasterサーバのオフライン(【1】の構成値に達する)を判断し、客観的失効の場合にのみmasterサーバがフェイルオーバ(failover)を実行し始める
5マスター選挙ルール
cluster(クラスタ)
1機能:
redisが提供する分散型データベーススキームであり、スライス(sharding)によってデータ共有を行い、レプリケーションとフェイルオーバの機能を提供する.
クラスタ内のノードが到達できない場合、コマンドの処理を続行できます.
2クラスタのデータスライス
clusterはコンシステンシhashを用いずハッシュスロットを導入し,合計16384個,clusterノードがそれぞれ一部を担うハシスロット(hash slot)(各keyはCRC 16検査後に16384を型取りしてどのスロットを置くかを決定する)
複数のkeyが同じスライスに属する場合、複数のkeyを同時に操作することができ、そうでなければ、できない.
3クラスタのフォールトトレランス(マスターコピーモデル)
一部のノードがクラスタの使用に影響を及ぼさずに到達できない場合、redisは主従レプリケーションモデルを使用する.すなわち、各masterには対応するslaveがあり、あるmasterが到達できない場合、クラスタはそのslaveを新しいmasterとして選択してサービスを継続する.
4クラスタは、強い一貫性を保証できません(低遅延と高性能の観点から、プライマリ・スレーブ・レプリケーションは非同期で実行されます).
5構成
添付、キャッシュ更新?
1ヒット:クエリーがキャッシュからコンテンツを読み込むと、直接戻ります.
2 miss:永続層からコンテンツを読み出し、キャッシュに保存して戻ります.
3更新:データ変更の場合、データベースを更新してからキャッシュを更新します.
1説明:
master-slaveのグループでは、sentinelシステムがmaster状態を監視するために使用され、masterがダウンタイムした場合、古いmasterの代わりに新しいmasterを自動的にルールに従ってslaveから選択します.
古いmasterが再びオンラインになると、新しいmasterのslaveとして実行されます.
2起動
$ redis-sentinel sentinel.conf
または
$ redis-server sentinel.conf --sentinel
sentinelが起動するサーバとしてクライアントが送信できるコマンドはPING、SENTINEL、INFO、SUBSCRIBE、UNSUBSCRIBE、PSUBSCRIBE、PUNSUBSSCRIBE、PUNSUBSSCRIBEのみで、起動してもAOF、RDBファイルはロードされません
3構成
sentinel monitor mymaster 127.0.0.1 6379 2 ## ip/ / master 2 sentinel 【1】
sentinel down-after-milliseconds mymaster 60000 ## Sentinel ms
sentinel failover-timeout mymaster 180000 ## ,ms, , ,
sentinel parallel-syncs mymaster 1 ## , , ,
4主観的失効と客観的失効
主観的な失効:sentinelがサーバのオフラインを判断し、down-after-millisecondsの設定値に基づいて
客観的失効:sentinelシステムはmasterサーバのオフライン(【1】の構成値に達する)を判断し、客観的失効の場合にのみmasterサーバがフェイルオーバ(failover)を実行し始める
5マスター選挙ルール
Disconnection time from the master.
Slave priority. ## slave-priority 10,25,100,
Replication offset processed. ## ,
Run ID. ## runId, ,
cluster(クラスタ)
1機能:
redisが提供する分散型データベーススキームであり、スライス(sharding)によってデータ共有を行い、レプリケーションとフェイルオーバの機能を提供する.
クラスタ内のノードが到達できない場合、コマンドの処理を続行できます.
2クラスタのデータスライス
clusterはコンシステンシhashを用いずハッシュスロットを導入し,合計16384個,clusterノードがそれぞれ一部を担うハシスロット(hash slot)(各keyはCRC 16検査後に16384を型取りしてどのスロットを置くかを決定する)
複数のkeyが同じスライスに属する場合、複数のkeyを同時に操作することができ、そうでなければ、できない.
3クラスタのフォールトトレランス(マスターコピーモデル)
一部のノードがクラスタの使用に影響を及ぼさずに到達できない場合、redisは主従レプリケーションモデルを使用する.すなわち、各masterには対応するslaveがあり、あるmasterが到達できない場合、クラスタはそのslaveを新しいmasterとして選択してサービスを継続する.
4クラスタは、強い一貫性を保証できません(低遅延と高性能の観点から、プライマリ・スレーブ・レプリケーションは非同期で実行されます).
5構成
port 7000
cluster-enabled yes ##
cluster-config-file nodes.conf ## ,
cluster-node-timeout 5000 ##
添付、キャッシュ更新?
1ヒット:クエリーがキャッシュからコンテンツを読み込むと、直接戻ります.
2 miss:永続層からコンテンツを読み出し、キャッシュに保存して戻ります.
3更新:データ変更の場合、データベースを更新してからキャッシュを更新します.