ホームページ  >  記事  >  データベース  >  Redis7.0 デプロイクラスターを実装する方法

Redis7.0 デプロイクラスターを実装する方法

WBOY
WBOY転載
2023-05-28 16:28:141745ブラウズ

Redis7.0 デプロイ クラスターの詳細バージョン

クラスター アーキテクチャは、ネットワーク経由で複数のコンピューターを接続し、統一された管理方法を使用して、外部からはサービスを提供する単一のコンピューターのように見える方法です

クラスターの役割:

  • 単一サーバーのアクセス圧力を分散し、負荷分散を実現します

  • 単一サーバーのストレージを分散します。スケーラビリティを実現します

  • 単一サーバーのダウンタイムによって引き起こされるビジネス上の災害を軽減します

Redis7.0 デプロイクラスターを実装する方法

1、 Redis クラスターの内部構造の設計

データ ストレージ設計

  • アルゴリズム設計を通じて、キーの保存場所を計算します

  • すべてのストレージ スペースは 16384 個のパーツに分割される予定で、各ホストはパーツを保存します。各パーツは、キーのストレージ スペースではなく、ストレージ スペースを表します。

  • キーは次のように計算されます。結果は対応するストレージ スペースに配置されます

  • #スケーラビリティの強化 (新しいストレージ スペースが追加され、正式には

    slot と呼ばれます)

  • ##クラスターの内部通信設計

    各データベースは相互に通信し、スロットの番号付きデータを各ライブラリに保存します
  • # #ヒットしたら直接リターン
  • ミスしたら特定の場所を通知
  • ##2. クラスターの内部構造の構築

仮想マシン内で複数のウィンドウを起動してクラスタ構築のデモンストレーションを行う

メインコマンドはRedis7.0 デプロイクラスターを実装する方法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-

##接続ノード

Redis7.0 デプロイクラスターを実装する方法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
実行結果は次のとおりです

構成情報の表示結果は以下のとおりです

Redis7.0 デプロイクラスターを実装する方法

yes

を実行した後の情報コマンドは次のとおりです。

Redis7.0 デプロイクラスターを実装する方法

記録されている構成ファイル情報を再度確認します。すべてのクラスタ情報

Redis7.0 デプロイクラスターを実装する方法クライアントを起動してデータを保存します。

クラスター デプロイメントが使用されるため、指定されていない場合は、

-c
パラメーターを通じてクラスターを操作できます。さらに、redis コマンドを操作するときに、プロンプト

( 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 failover

redistrib コマンド

ノードの追加

redis-trib.rb add-node

ノードの削除

redis-trib.rb del-node
Reshard

redis-trib.rb reshard

3. マスター/スレーブのオフラインとマスター/スレーブの切り替え

1. スレーブのオフライン操作をシミュレートする

スレーブ サーバーで実行

Ctrl C

サービスをダウンロード

接続されているホストのステータスを観察します。ホストは、スレーブ サーバーに障害が発生した場合にそのスレーブを失敗としてマークします。 10 秒以内にスレーブに接続できません。他のクラスタ サービスは接続に失敗し、他のサービスはメッセージ

#スレーブを再起動し、ホストが再接続します。スレーブ マシン上

マスター マシンがオフラインになると、スレーブ マシンは特定のスロットに切り替わります。マスター マシンがオンラインに戻ると、元のマスター マシンがスレーブ マシンになります。

以上がRedis7.0 デプロイクラスターを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。