Redis Cluser

1173 ワード

Redis Cluser


redis cluserはredis 3である.0は、スタンドアロンのボトルネックを解決するためのredis分散ソリューションを発表しました.

データパーティションの原理


分散型データベースは、まず、パーティション・ルールに従って複数のノードにデータセット全体をマッピングする問題を解決します.すなわち、データセットを複数のノードに分割し、各ノードがデータ全体のサブセットを担当します.一般的なパーティション化方法は、次のとおりです.
1.ノード余剰パーティション
Redisのキーキーキーとノード数Nを用いて,hash(キー)%Nからこのキーがどのノードに分布すべきかを算出する.
2.コンシステンシハッシュパーティション
コンシステンシハッシュパーティションは、システム内のノードごとに1つのtokenを割り当て、一般に0~2^32の範囲であり、これらのtokenはハッシュループを構成する.データの読み書きがノード検索操作を実行する場合、keyに基づいてhash値を計算し、ハッシュ値以上の最初のtokenノードを時計回りに見つけます.
3.仮想スロットパーティション
Redisが採用する仮想スロットパーティションは,分散度の良いハッシュ関数CRC16 solt=CRC16(key)&16383を用いてすべてのデータを一定範囲の整数集合0~16383(スロット)にマッピングし,各ノードがいくつかのスロットを担当する.
redisのパーティション化原理を理解することによって,単機redisに対するcluserのいくつかの制限を容易に理解できる.
  • は、同じslot値を有するkeyによる一括操作のみをサポートする.
  • は、同じノード上の複数のキーのトランザクション操作のみをサポートし、複数のキーが異なるノードに分散されている場合はトランザクション機能を使用できません.
  • keyはデータパーティションの最小粒度であるため、hash、listなどの大きなキー値オブジェクトを異なるノードにマッピングすることはできない.
  • レプリケーション構造は1階層のみをサポートし、ノードからプライマリノードのみをコピーし、ネストされたツリーレプリケーション構造はサポートしません.