Windows構成RedisクラスタRedis Cluster

2976 ワード

Windows構成ReidsクラスタRedis Cluster
1.インストールRedisのダウンロード
RedisはWindowsを公式にサポートしていないが、Microsoft Open TechグループはGitHub上でWin 64のバージョンを開発し、ダウンロードアドレスは以下の通りである.https://github.com/MSOpenTech/redis/releases
解凍後、D:devRedisなどのカスタムRedisディレクトリにコピーします.
cmdを開き、Redisディレクトリに切り替えて実行
redis-server redis.windows.conf

ウィンドウを閉じないで、再び1つのcmdウィンドウを開いて、Redisに接続して実行します
redis-cli.exe -h 127.0.0.1 -p 6379

2.Rubyをインストールし、環境を構成する
Rubyをインストールして、WindowsはRubyInstallerをインストールすることができて、住所をダウンロードします:http://railsinstaller.org/en
次のインストールが完了すると自動的にcmdの黒いウィンドウがポップアップし、Rubyを構成する必要があります.
実行gem install redisでSSL Connect errorが発生した場合、rubyにSSL証明書が含まれていないため、httpsのリンクはサーバによって拒否されます.
解決方法は簡単です.まずここで証明書をダウンロードします.http://curl.haxx.se/ca/cacert.pemを選択し、環境変数にSSL_を設定します.CERT_FILEという環境変数はcacertを指す.pemファイル.
3.Redisクラスタの構築
クラスタを正常に動作させるには少なくとも3つのプライマリノードが必要ですが、クラスタ機能の試用を開始したばかりの頃は、6つのノードを使用することを強くお勧めします.そのうち3つはプライマリノードで、残りの3つは各プライマリノードのセカンダリノードです.
プライマリノードがクラッシュすると,ノードのRedisからプライマリノードに昇格し,元のプライマリノードに代わって動作し,クラッシュしたプライマリRedisが復帰して動作すると,セカンダリノードとなる.
1). Redisクラスタディレクトリの作成
redisがインストールしたルートディレクトリの下にポート名のフォルダを6つ作成
mkdir 7000 7001 7002 7003 7004 7005

インストールするredisフォルダのredis.windows.confおよびredis-serverは、それぞれ新しい6つのフォルダにコピーされます.
2). 構成の変更
6つのフォルダの下にあるredisをwindows.confファイルの次のプロパティを変更します.
port 7001(         )
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

3). 6つのredisサービスを開始
各ポートの名前付きフォルダの下に入ってサービスを開始
cd 7001
redis-server.exe redis.conf

他のいくつかのディレクトリは同じです
4). 起動クラスタの作成
起動クラスタの作成にはredis-tribが必要である.rbファイルは、インスタンスに特殊なコマンドを送信することによって、新しいクラスタの作成、クラスタのチェック、クラスタの再分割などの作業を完了するRubyプログラムです.
Windowsのredisインストールファイルにはこのファイルがありません.私たちは公式サイトに行ってRedisをダウンロードする必要があります.公式サイトのRedisはLinuxバージョンで、そのソースコードsrcフォルダの下で、redis-tribをrb本機のRedisのインストールディレクトリにコピー
最後にredis-tribに入ります.rbファイルが存在するディレクトリの実行:
ruby redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

このコマンドは、新しいクラスタを作成するために使用されます.オプション-replicas 1は、クラスタ内の各プライマリノードにスレーブノードを作成したいことを示します.その後続く他のパラメータは,このクラスタインスタンスのアドレスリスト,3つのmaster 3つのslaveである.
redis-tribは予想通りの構成を印刷して見せます.問題がなければyesを入力することができます.redis-tribはこの構成をクラスタに適用し、各ノードが互いに通信し始めるようにします.
5). クラスタに接続してテスト
クラスタを接続するコマンド:
redis-cli.exe -c -p 7000

Redisクラスタデータ割当ポリシー:
ハッシュスロット(hash slot)と呼ばれる方法でデータを割り当て、redis clusterはデフォルトで16384個のslotを割り当て、keyをセットするとCRC 16アルゴリズムで所属するslotを取得し、このkeyをハッシュスロット区間のノードに分割する.具体的なアルゴリズムは、CRC 16(key)%16384
注意:クラスタの作成に失敗する場合は、3つのノードがそれぞれ負担するslot区間は次のとおりです.
      A  0-5460;
      B  5461-10922;
      C  10923-16383.

したがって、上記の図では、redis clusterのハッシュスロットアルゴリズム:CRC 16(‘name’)%16384が7001ポートのredisサービスに割り当てられている.
これで、WindowsでのRedis Clusterの構成が完了しました!