Redis-clusterクラスタ構築+SpringBoot構成


  • 準備作業1)Redisインストールファイルをダウンロード:https://github.com/MSOpenTech/redis/releases/、Redisはmsiとzip形式のダウンロードファイルを提供し、ここでzip形式のRedis-x 64-3.2.1100バージョンをダウンロードします.2)Rubyインストールファイルをダウンロードする:http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.4-x64.exe 3)Ruby環境でのRedisのドライバのダウンロード:https://rubygems.org/gems/redis/versions/3.2.2、互換性を考慮して、ここでダウンロードしたのは3.2.2バージョンRedis-cluster集群搭建+SpringBoot配置_第1张图片4)Redis公式に提供されているRedisクラスタを作成するrubyスクリプトファイルredis-trib.rbをダウンロードし、このredis-trib.rbは、対応するバージョンのredis-XX.tar.gzのsrcディレクトリから取得されます(ピットを踏んで、redis-trib.rbがインストールされているredisのバージョンと一致しない可能性があります.ソースファイルからredis-trib.rbを取得してもWARNING: redis-trib.rb is not longer available!問題は発生しません).windows 3.2.10アドレス:https://github.com/MicrosoftArchive/redis/releases Redis-cluster集群搭建+SpringBoot配置_第2张图片
  • Redisインストールクラスタは、3つのノードのクラスタを計画し、各ノードに1つのプライマリ・スペアがある.6台の仮想マシンが必要です.redisを解凍してから5部コピーし,3主3従クラスタを配置する.redisのデフォルトポート番号が6379であるため、他の5つのポートは63806381638263636384であってもよい.また、ディレクトリをポート番号で命名Redis-cluster集群搭建+SpringBoot配置_第3张图片開いてディレクトリ6379の下にファイルredis.windows.confがあり、中のポート番号を変更し、クラスタサポート構成をサポートします.port 6379 cluster-enabled yes cluster-config-file nodes-6379 conf cluster-node-timeout 15000 appendonly yes残りのredisを対応ポートに変更cluster-enabledがyesでない場合、JedisClusterクラスタコードを使用して取得すると、エラーが発生します.cluster-node-timeoutを15000に調整すると、クラスタの作成時にタイムアウトしません.cluster-config-file nodes-6379.confは、nodes-ポート.confネーミングメソッドを使用するノードの構成情報です.サービスが開始されると、ディレクトリにファイルが生成されます.各ノードディレクトリの下にstart.batを作成してredisを起動します.title redis-6379 redis-server.exe redis.windows.conf
  • Rubyインストールredisのクラスタはrubyスクリプトで記述されているため、システムはRuby環境Redis-cluster集群搭建+SpringBoot配置_第4张图片インストール時に3つのオプションをチェックし、
  • RedisをインストールするRubyドライバは、ダウンロードした「Ruby環境でのRedisのドライバファイル(redis-3.2.2.gem)」をRubyインストールルートディレクトリにコピーします.cmd実行コマンド
  • を開きます.
     	gem install --local filePath/filename.gem
    

    在这里插入图片描述5.インストールクラスタスクリプトredis-trib.rbは、6379ディレクトリなどのRedisのディレクトリに保存することを推奨します.すべてのredisサービスを起動し、masterノードを3つ以上使用できないため、6つのredisを使用し、3つのプライマリ3がredisディレクトリに切り替えてコマンドラインで実行します.
    ruby redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384
    

    注意:--replicas#は、クラスタ内のプライマリノードごとにいくつかのスレーブノードを配備することを指定します.ここでは1に設定します.メインノードがクラッシュすると,ノードのRedisからメインノードに昇格し,元のメインノードに代わって動作し,クラッシュしたメインRedisから復帰して動作すると,ノードRedis-cluster集群搭建+SpringBoot配置_第5张图片からCanI set the above configurationが出現する?(type‘yes’to accept):yesを確定して入力してください.成功後の結果は、Redis-cluster集群搭建+SpringBoot配置_第6张图片6.コマンドredis-cli-c-h 192.168.*.**-p 6379を使用してクラスタを接続するテストです.-cはクラスタ-hはIPアドレス-pはポートテストが6381 setの文字列でokを表示することを表す.クライアント接続は、クラスタがこの値を6381のスロットに割り当て、6381で設定した値にgetすることもできるため、6381に自動的に変換される.Redis-cluster集群搭建+SpringBoot配置_第7张图片6384に再接続され、値在这里插入图片描述7.削除ノード1の追加)追加ノードadd-node#クラスタにプライマリノードを追加
    redis-trib.rb add-node 192.168.*.**:6385 192.168.*.**:6379
    

    #クラスタにスレーブノードを追加すると、任意のプライマリノードにランダムに割り当てられます.
    redis-trib.rb add-node --slave 192.168.*.**:6385 192.168.*.**:6379
    

    #クラスタへのノードの指向性の追加
    redis-trib.rb add-node --slave --master-id 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e 192.168.*.**:6385 192.168.*.**:6379
    

    1番目のパラメータ:ノードの新しいアドレスとポート192.168.**:6385 2番目のパラメータ:既存のクラスタ内の任意のサービス・エンド・アドレスとポート192.168.**:6379すべてのノードを表示します.
    cluster nodes
    

    2)ノードdel-nodeの除去
    redis-trib del-node 192.168.*.**:6385
    

    パラメータはip:port,nodeid(nodes.confファイルから入手可能)3)を新しいスロットから
    redis-trib reshard 192.168.*.**:6385
    

    次に、割り当てられたスロット数を入力させます.範囲は1-16384で、4000を入力します.その後、どのノードからこれらのスロット数を分けるかを尋ね、allのすべてのノードを選択します.
    How many slots do you want to move (from 1 to 16384)? 4000
    

    最後に、このスロット計画を実行するかどうかを尋ね、yesを入力して計画を実行します.
    Do you want to proceed with the proposed reshard plan (yes/no)? yes
    

    SpringBoot統合Redisクラスタ環境構成:基本的にスタンドアロン版とは大きく異なり、アプリケーション-redisCluster.yml
    spring:
      redis:
        #      (  )
        timeout: 6000ms
        #  
        #password:
        cluster:
          nodes:
            192.168.26.166:6379,192.168.26.166:6380,192.168.26.166:6381,192.168.26.166:6382,192.168.26.166:6383,192.168.26.166:6384
        jedis:
          pool:
            max-active: 8
            max-wait: -1
            max-idle: 500
            min-idle: 0
        lettuce:
          shutdown-timeout: 0
    

    残りの構成およびutilクラスは、別のブログを参照してください.https://blog.csdn.net/qq_41764647/article/details/103275319