クラスター アーキテクチャは、ネットワーク経由で複数のコンピューターを接続し、統一された管理方法を使用して、外部からはサービスを提供する単一のコンピューターのように見える方法です
クラスターの役割:
単一サーバーのアクセス圧力を分散し、負荷分散を実現します
単一サーバーのストレージを分散します。スケーラビリティを実現します
単一サーバーのダウンタイムによって引き起こされるビジネス上の災害を軽減します
データ ストレージ設計
アルゴリズム設計を通じて、キーの保存場所を計算します
すべてのストレージ スペースは 16384 個のパーツに分割される予定で、各ホストはパーツを保存します。各パーツは、キーのストレージ スペースではなく、ストレージ スペースを表します。
キーは次のように計算されます。結果は対応するストレージ スペースに配置されます
slot と呼ばれます)
##2. クラスターの内部構造の構築
メインコマンドはmainコマンドで実行されます。操作クライアント
構成ファイル
変更
redis.conf
次のコンテンツを追加します
cluster-enabled yes # 启动为节点 cluster-config-file nodes-6379.conf # cluster配置文件名,该文件属于自动生成,仅用于快速查找文件并查询文件内容 cluster-node-timeout 10000 # 节点服务响应超时时间,用于判定该节点是否下线或切换为从节点 cluster-migration-barrier <count> # master连接的slave最小数量
すぐに構成ファイルの 5 つのポイントをコピーし、内部のポートを置き換えますすべての実行後、[root@localhost conf]# sed "s/6379/6380/g" redis-6379.conf > redis-6380.conf [root@localhost conf]# sed "s/6379/6381/g" redis-6379.conf > redis-6381.conf [root@localhost conf]# sed "s/6379/6382/g" redis-6379.conf > redis-6382.conf [root@localhost conf]# sed "s/6379/6383/g" redis-6379.conf > redis-6383.conf [root@localhost conf]# sed "s/6379/6384/g" redis-6379.conf > redis-6384.conf [root@localhost conf]# sed "s/6379/6385/g" redis-6379.conf > redis-6385.conf
cat
コマンドを使用して内容をチェックし、変更されていることを確認できます
redis サービス クラスターを開始します
# 在第一个窗口执行6379服务 redis-server redis-6379.conf # 在第二个窗口执行6380服务 redis-server redis-6380.conf # 在第三个窗口执行6381服务 redis-server redis-6381.conf # 下面的代码依次类推到6385コマンドを実行して redis プロセスとポートを表示します
ps -ef | grep redis-
##接続ノード
src ディレクトリの表示
redis-trib.rb上位バージョンでは、起動操作は構成情報の表示結果は以下のとおりですredis-cli
ruby## に移動されました#開始するには、
と
gem という 2 つのファイルを 2 回ダウンロードする必要があります。
# 下载命令也会将gem一起 yum -y install rubygems
# --cluster create 创建集群 # --cluster-replicas 1 指定集群的内部结构(1代表一个master连接1个slave,2代表一个master连接两个save) # 后面的连接端口按数量实现master连接哪一个slave,1对1,1对2 redis-cli --cluster create 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 --cluster-replicas 1実行結果は次のとおりです
yes
を実行した後の情報コマンドは次のとおりです。記録されている構成ファイル情報を再度確認します。すべてのクラスタ情報
クライアントを起動してデータを保存します。
パラメーターを通じてクラスターを操作できます。さらに、redis コマンドを操作するときに、プロンプトクラスター デプロイメントが使用されるため、指定されていない場合は、
-c
( error) MOVED 5798 127.0.0.1:6380
注:
-c
操作クラスターredis-cli -c # 创建key,通过返回信息可以知道key存储到6380下了 127.0.0.1:6379> set name 123 -> Redirected to slot [5798] located at 127.0.0.1:6380 OKクライアントに接続するポートを指定してください# 连接指定的集群客户端 [root@localhost data]# redis-cli -c -p 6382 # 获取key 127.0.0.1:6382> get name -> Redirected to slot [5798] located at 127.0.0.1:6380 "123" 127.0.0.1:6380>クラスターノード操作コマンド
クラスターノード情報の表示
cluster nodes
スレーブノードredisを入力し、マスターノードを切り替えるcluster replicate <master-id>
新しいノードの検出ノードを作成し、新しいマスター ノードを追加します
cluster meet ip:port
ソルトなしのノードを無視します
cluster forget <id>
手動フェールオーバー
cluster failoverredistrib コマンド
ノードの追加
redis-trib.rb add-node
ノードの削除redis-trib.rb del-node
Reshard
redis-trib.rb reshard
3. マスター/スレーブのオフラインとマスター/スレーブの切り替え
1. スレーブのオフライン操作をシミュレートする
スレーブ サーバーで実行接続されているホストのステータスを観察します。ホストは、スレーブ サーバーに障害が発生した場合にそのスレーブを失敗としてマークします。 10 秒以内にスレーブに接続できません。他のクラスタ サービスは接続に失敗し、他のサービスはメッセージ#スレーブを再起動し、ホストが再接続します。スレーブ マシン上
マスター マシンがオフラインになると、スレーブ マシンは特定のスロットに切り替わります。マスター マシンがオンラインに戻ると、元のマスター マシンがスレーブ マシンになります。
以上がRedis7.0 デプロイクラスターを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。