転載します。https://juejin.im/post/5ad54d76f265da23970759d3
著者:SnailClimb
ここでまた、我々はあなたを助けることができるように願って未来を構築するために必要なRedisのクラスタをまとめます。
ここでCentos7使用される主なペンです
Redisの設置
Redisのは、C言語の開発です。
Redisのをインストールし、Cコンパイラ環境の言語を必要としています。gccをインストールするためにオンラインである必要がない場合:YUMのgcc-C ++をインストール
最初のステップ:ソースパッケージを取得します:wgetのhttp://download.redis.io/releases/redis-3.0.0.tar.gz
ステップ2:開梱のRedis:Redisの-3.0.0.tar.gz zxvfタール
ステップ三:コンパイラ。ソースディレクトリにRedisの(CDのRedisの-3.0.0)。実行メイク
ステップ4:インストールします。=は/ usr / local PREFIXをインストールします / Redisの
PREFIXパラメータは、Redisののインストールディレクトリを指定します。一般的なソフトウェアは、/ usrディレクトリにインストールされています
Redisのは成功したような場合には、当社のUSR /ローカル/ Redisのディレクトリをインストール。
ステップ5:開始する背景を設定します。
[ルート@ localhostのRedisの-3.0.0]#のcp redis.confは/ usr / local / Redisの/ binに/
(次は/ usr / local / Redisの/ binディレクトリにコピーします/root/redis-3.0.0/redis.conf)
:設定ファイル変更デーモン化へのパラメータの後ろをはい
テスト開始: [ルート@ localhostのビン]#./redis-server redis.conf
Redisのプロセスを見る: [ルート@ localhostのビン]#のPS AUX | grepをするのRedis
Redisの2つのクラスタを構築します
2.1 Redisのクラスター(Redisのクラスタ)の原則
あなたはRedisのクラスタを構築したい場合はRedisのは、バージョン3.0より前のバージョン3.0より前のクラスタをサポートしていません格納された値と、対応するノードの値を見つけるためのミドルウェアを必要としています。
Redisのバージョン3.0クラスタアーキテクチャ図の後に:
これは、それを達成する方法ですか???
Redisのクラスタは、内蔵16384キー値が第一演算結果を使用してクラスタのRedis、RedisのCRC16アルゴリズム鍵に入れ、各キーが対応するように16384の残りの数、結果する場合、ハッシュスロット号に0から16383の間でハッシュ溝、Redisのノードの数に応じて異なるノードにマッピングされたハッシュスロットに実質的に等しくなります。
次の図は、理解し、より簡単にする必要があります。(出典:のhttp://www.cnblogs.com/liyasong/p/redis_jiqun.html)
メカニズムを投票のRedisクラスター
RedisのRedisのサーバークラスタは、必然的に複数のサーバがハングアップがあるでしょう。ノード間のサーバクラスタのRedisはピンポン決意を介して相互に接続することができるかどうか。応答がないとき、ノードの半分以上は、ノードにpingを実行する場合は、クラスタノードがダウンしていると見なします。
上記の私たちは、多くの場合、フォールトトレランス生まれたために、言うことであるメカニズムを投票のRedisクラスター。
2.2 redis集群(redis-cluster)的搭建
redis集群搭建起来很简单,我们这里用一台虚拟机模拟搭建包含6个redis服务器的集群,实际工作中与使用多台服务器搭建是一个操作。
我们上面已经装好了一个redis实例,现在我们需要把它复制6份并修改相应端口。
第一步: 新建redis-cluster文件夹
第二步:复制redis实例
[root@Snailclimb local]# cp redis/bin redis-cluster/redis1
如果你复制过去的redis实例有dump.rdb文件的话最好也要删除。
第三步:修改配置文件
修改bin目录下的redis.conf配置文件
第四步:继续复制5个redis实例
我们用上面的redis实例复制5个redis实例,然后把他们的配置文件的端口号改为7002-7006
第五步 :新建一个执行脚本:
[root@Snailclimb redis-cluster]# vim start-all.sh
脚本内容如下:
为脚本赋予执行权限:
[root@Snailclimb redis-cluster]# chmod u+x start-all.sh
同时启动6个redis实例:
[root@Snailclimb redis-cluster]# ./start-all.sh
第六步:将redis-trib.rb复制到redis-cluster目录下面:
并为脚本赋予执行权限:[root@Snailclimb redis-cluster]# chmod u+x redis-trib.rb
第七步:安装ruby和ruby运行环境
yum install ruby
yum install rubygems
gem install redis-3.0.0.gem
ステップ8:クラスタを構築するために使用Rubyスクリプト:
[SnailclimbのRedisのクラスタ@ルート]#/ Redisの-trib.rb --replicas 1 192.168.25.155:7001 192.168.25.155:7002 192.168.25.155:7003 192.168.25.155:7004 192.168.25.155:7005 192.168.25.155を作成します。: 7006
ビュークラスタ:
ポートのエラーを修正するか、クラスタ対応はいが失敗するように設定されたクラスタの削除につながる前にコメントしなかった。注意してください。全体的に、Redisのクラスタセットアップは非常に簡単です。
設定されているような完全なRedisのクラスタが完成されます。。。
クラスタを使用して、テストのRedisの3スタンドアローン版
Mavenの依存関係を追加します。
スタンドアローンのテストのRedis:
接続プーリングテストスタンドアローンのRedisを使用します。
テストクラスタ版のRedis:
シングルと4 JavaWebでクラスタ化を達成するためにどのようにシームレスにプロジェクトを切り替えます
どのように我々は、彼らが使用したいスタンドアロンクラスタのRedisのRedisの上のプロジェクトで使用する単一のRedisを達成することができ、プロジェクトのRedisのクラスターそれにコードを変更していませんか???
適切なクラスおよびインタフェースを作成します。
インタフェース:
Cluster Editionは使用しています:
スタンドアローン使用:
ApplicationContextの-redis.xml
テストコード:
このプロジェクトでは、我々は、関連するスイッチを実装し、スタンドアロンクラスタのバージョンをするために実際のコードを変更する必要はありません。。