Centos 6.5 redis clusterクラスタ構築
7385 ワード
Centos 6.5 redis clusterクラスタ構築
参考文章:Redis学習ノート(十四)Redis Cluster紹介と構築
前言
1.
この方法には、次のような利点があります.は横方向の拡張をサポートすることができ、スループットのピークがより高い場合、拡張 をサポートすることができる.
しかし、以下の欠点もあります.は通常 しかサポートできない.が読み書き分離を行う場合、 を修正する必要がある場合があります.横拡容を行う場合は、星状機構を取ることができないことに注意し、木状構造(星状構造は をとる必要がある.は、高可用性を達成するために .
2.
対照的に、 を実行することをサポートする.
この記事では、
データぶんぷりろん
分散型データベースは、データを何らかのルールに従って複数のノードにマッピングする問題を主に解決し、各ノードはデータのサブセット全体を担当します.一般的なパーティションには、ハッシュパーティションとシーケンスパーティションがあります.ノード取り残しパーティション コンシステンシハッシュパーティション 仮想スロットパーティション
redis clusterの構築
環境 ノード
ここで、ノードの構成レプリケーション
次の内容を変更します.
その後、このファイルを
コピー
次のフォルダを作成します.
次に、
上記の方法で6つのインスタンスを配置します.6つのインスタンスが異なるマシンにある場合は、プロファイルを直接コピーしてください.1台のマシンが2つ以上のインスタンスを走る場合は、ポート番号の変更に注意する必要があります.
テストに使用すると、すべてのノードが同じマシンの上を走っています.プロファイルは次のように変更できます.
6つの
クラスタの作成
クラスタの作成
これは、システムが
次のコマンドを実行します.
これで正常にインストールできます.インストールが完了したら、
次に、次の方法でクラスタを作成します.
実行中に
このうちパラメータ
参考文章:Redis学習ノート(十四)Redis Cluster紹介と構築
前言
redis
クラスタの作成には、全体的に2つの方法があります.1.
redis replication
機能を使用してredis
を複製し、同時に主従を読み書き分離する.redis sentinel
を使用して、redis
クラスタの高可用性を保証します.この方法には、次のような利点があります.
slave
ノードによって、より高いリードQPS
しかし、以下の欠点もあります.
master
ノードであり、読み書き分離を行っても最大数万の書き込みQPS
(単純なデータ構造の場合、より複雑なデータはより低い可能性がある)redis
クライアント(例えばjedis
)は、この点に対する読み書き分離のサポートが不足する.拡張およびパッケージングが必要な場合、またはソースコードmaster
ノードにslave
ノードを多く搭載し、データ複製を行う際にmaster
ノードに圧力が大きい)sentinel
クラスタのセットを維持する必要がある2.
redis 3.0
バージョンではredis cluster
がリリースされました.redis
の分散型のニーズを効果的に解決しました.redis cluster
はreplication,sentinel
機能を集合し、同時にmaster
の横方向拡張をサポートする.トラフィックのボトルネックの問題をうまく解決することができます.redis cluster
を使用すると、トラフィックのボトルネックを突破できます.対照的に、
redis cluster
は分散ソリューションである.ただし、以下の機能制限もあります.key
バッチ操作サポートは限られています.現在、同じslot
の値を有するkey
のみが一括動作key
トランザクション・オペレーションのサポートは限られており、同じノード上のトランザクション・オペレーションをサポートし、複数のノードのトランザクションをサポートしていません.この記事では、
redis cluster
のいくつかの基礎知識について説明し、redis cluster
クラスタを構築する方法について説明します.データぶんぷりろん
分散型データベースは、データを何らかのルールに従って複数のノードにマッピングする問題を主に解決し、各ノードはデータのサブセット全体を担当します.一般的なパーティションには、ハッシュパーティションとシーケンスパーティションがあります.
redis cluster
は、ハッシュ・パーティション・ルールを採用する.一般的なハッシュ・パーティションには、次のものがあります.redis cluster
は仮想スロットパーティションを採用し、すべてのキーはハッシュ関数に基づいて0-16383
個のslot
にマッピングされ、計算式はslot = CRC16(key)&16383
である.各ノードは、slot
およびslot
のマッピングされたキー値データの一部を維持する責任を負う.redis clusterの構築
環境
CentOs 6.5
Redis 4.0.9
(2018/4/10最新バージョン)redis cluster
クラスタは一般に複数のノードから構成され、ノード数が6つ以上であれば、高可用性のクラスタを保証することができる.ここで、ノードの構成レプリケーション
redis
ディレクトリのutils/redis_init_script
はredis_7000
です.次の内容を変更します.
REDISPORT=7000
その後、このファイルを
/etc/init.d/
ディレクトリにコピーします.コピー
redis
ディレクトリの下のredis.conf
から/etc/redis/7000.conf
まで、以下の内容を変更します.port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
daemonize yes
pidfile /var/run/redis_7000.pid
dir /var/reids/7000
logfile /var/log/redis/7000.log
bind 192.168.1.103 // IP
appendonly yes
次のフォルダを作成します.
/var/redis/7000
/var/log/redis/
次に、
/etc/init.d/
ディレクトリの下に行って、./redis_7000 start
コマンドを実行してredis
インスタンスを起動します./var/log/redis/7000.log
を確認して、正常に起動したかどうかを確認します.上記の方法で6つのインスタンスを配置します.6つのインスタンスが異なるマシンにある場合は、プロファイルを直接コピーしてください.1台のマシンが2つ以上のインスタンスを走る場合は、ポート番号の変更に注意する必要があります.
テストに使用すると、すべてのノードが同じマシンの上を走っています.プロファイルは次のように変更できます.
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
cluster-announce-ip 39.10X.XX.XX // IP
cluster-announce-port 7000
cluster-announce-bus-port 17000
daemonize yes
pidfile /var/run/redis_7000.pid
dir /var/reids/7000
logfile /var/log/redis/7000.log
appendonly yes
6つの
redis
の実例を走ってからでいいです.現在redis
の集団はすでに走り出しているが、まだ仕事ができない.クラスタの作成
クラスタの作成
ruby
に関連するツールを使用する場合は、次のコマンドを実行してruby
をインストールする必要があります.yum install -y ruby
yum install -y rubygems
gem install redis
gem install redis
が実行されている間に、次のエラーが発生した場合. gem install redis
ERROR: Error installing redis:
redis requires Ruby version >= 2.2.2.
これは、システムが
centos 6.5
でデフォルトでインストールされているRuby
バージョンが1.8.7
であるため、2.2.2
以上にアップグレードする必要があるためです.次のコマンドを実行します.
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -L get.rvm.io | bash -s stable
source /usr/local/rvm/scripts/rvm
# ruby
rvm list known
# 2.3.4
rvm install 2.3.4
#
rvm use 2.3.4
gem install redis
これで正常にインストールできます.インストールが完了したら、
redis
ディレクトリのsrc/redis-trib.rb
ファイルを/usr/local/bin
にコピーします.次に、次の方法でクラスタを作成します.
redis-trib.rb create --replicas 1 192.168.1.103:7000 \
192.168.1.103:7001 192.168.1.104:7002 192.168.1.104:7003 \
192.168.1.105:7004 192.168.1.105:7005
実行中に
slot
を割り当てることができるかどうかを尋ね、yes
を入力します.このうちパラメータ
--replicas
は、master
ごとにslave
があることを示しており、意外なことがなければ、redis
クラスタおよび構築が完了します.クラスタのステータスは、次のコマンドで確認できます.redis-trib.rb check 192.168.1.103:7001