Redisクラスタ構築(主から複数)

2534 ワード

本論文では主にJedis&SentinelによるRedisクラスタの高利用可能なスキームを紹介します。このスキームはJedis 2.2.2および以上のバージョンを使用する必要があります。Redis 2.8および以上のバージョンです。
一、インストールredis
インストール方法は、参考できます。http://blog.csdn.net/codetomylaw/article/details/40395905
目的:主二従環境を構築し、192.168.18.19(主)  192.168.18.178(从)192.168.18.179(从) 
配置redisが完了し、すべてのポートが使用するデフォルトのポート6379。
プロファイルディレクトリを設定:/etc/redis 
バックアップディレクトリ: /opt/ソフト/redis/backup 
ログディレクトリ:  /opt/ソフト/redis/logs 
192.168.18.178/179サーバーからslaaveof 192.168.18.19 6379を構成する必要があります。
slaave-priceを設定します。デフォルトは100です。
178は50に配置され、179は100に構成されている。
マスターが切った時、Sentinelは優先的にslavie-prorityの値が小さいものを新しいマスターとして選択します。
検証:マスターにデータを書き込む時、slaaveはデータを同期して、環境構築が完了したと説明します。
二、sentinelの配置
参考:http://blog.csdn.net/codetomylaw/article/details/41011543
デーモンに設定
daemonize yes
ログ出力ディレクトリの設定
logfile"/opt/ソフト/redis/log/sentinel.log" 
モニターを配置したマスターredis
sentinel monitor mysmater 192.168.18.19 6379 2 
3つのsentinelプロセスが展開され、それぞれ192.168.18.19、192.168.18.178、192.168.18.179に配置され、構成ファイルはsentinel.co nfと同じである。
sentinel.co nfプロファイルはダイナミックで、ファイルは以下のように多くなりました。
sentinel known-slavie mmaster 192.168.18.179 6379
sentinel known-sentinel mymaster 192.168.18.179 26379 9 a 00533 bb 48 c 8 c 860 f 373 d 9594 b 5126 d 1 a 1 db 9
sentinel known-sentinel mmaster 192.168.119 7382641625 b 563 f 367683 b 234 d 9 c 1 d 971972
sentinel current-epoch 0 
三、プログラム検証
	Set sentinels = new HashSet();
        sentinels.add(new HostAndPort("192.168.18.19", 26379).toString());
        sentinels.add(new HostAndPort("192.168.18.178", 26379).toString());
        sentinels.add(new HostAndPort("192.168.18.179", 26379).toString());
        JedisSentinelPool sentinelPool = new JedisSentinelPool("mymaster", sentinels);
        System.out.println("Current master: " + sentinelPool.getCurrentHostMaster().toString());
        
        Jedis master = sentinelPool.getResource();
        master.set("username","jack");
        sentinelPool.returnResource(master);
        
        Jedis master2 = sentinelPool.getResource();
        String value = master2.get("username");
        System.out.println("username: " + value);
正常にredisから情報を取得し、説明構成が完了しました。
四、メモリアップグレード方案
1)スレーブを停止し、メモリをアップグレードし、元に戻す。
2)もう一つのスレーブを停止し、メモリをアップグレードして、元に戻す。
3)主を停止し、二つの中から一つの主を選び、メモリをアップグレードし、元に戻す。 (以前の主は従になりました)
五、マルチマスターはクラスタから構築する
完全を期する