1. 手動構築
1. ノードの準備
CentOS7 をインストールして Redis をインストールする
確実に実行するには、ノードの数が少なくとも 6 である必要があります。完全で高可用性の構成 クラスター
(1) ディレクトリ構造
cluster ├── 9001 │ ├── data │ │ ├── appendonly.aof │ │ └── nodes-9001.conf │ ├── redis-9001.conf │ └── redis-9001.log ├── 9002 │ ├── data │ │ ├── appendonly.aof │ │ └── nodes-9002.conf │ ├── redis-9002.conf │ └── redis-9002.log ...
(2) 構成ファイルの準備
cd cluster mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data cp ../redis-6.0.9/redis.conf 9001/redis-9001.conf vi 9001/redis-9001.conf port 9001 daemonize yes bind 192.168.11.40 dir /root/cluster/9001/data/ pidfile /var/run/redis_9001.pid cluster-enabled yes # 集群模式运行 cluster-config-file nodes-9001.conf cluster-node-timeout 15000 # appendonly yes logfile "/root/cluster/9001/redis-9001.log"
コピーと置換::%s/9001 /9002/g
(3) サービスを開始します
/usr/local/redis/bin/redis-server /root/cluster/9001/redis-9001.conf ... tail 9001/redis-9001.log kill `cat /var/run/redis_9001.pid`
起動後、クラスター構成ファイル nodes-9001.conf
が作成されます。データディレクトリに自動的に作成されます。クラスター内のノード情報が変更されると、ノードはクラスターのステータスをこの構成ファイルに自動的に保存します。手動で変更しないことをお勧めします。起動時にクラスター構成ファイルが存在する場合、ノードは構成ファイルの内容を使用してクラスター情報を初期化します。
$ cat 9001/data/nodes-9001.conf 8ccdb0963411ebd05ce21952bdd4b7597825afdc :0@0 myself,master - 0 0 0 connected vars currentEpoch 0 lastVoteEpoch 0 $ /usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9001 192.168.11.40:9001> cluster nodes 8ccdb0963411ebd05ce21952bdd4b7597825afdc :9001@19001 myself,master - 0 0 0 connected
ノード ID: ノードを一意に識別するために使用される 40 桁の 16 進数の文字列。クラスター。ノード ID は一度だけ作成され、実行中の ID は再起動されるたびに変更されます
2. ノード ハンドシェイク
ノード ハンドシェイク クラスター モードで実行されているノードのバッチは、次の方法で相互に通信します。相互に通信するための Gossip プロトコル 認識
$ /usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9001 192.168.11.40:9001> cluster meet 192.168.11.40 9002 OK 192.168.11.40:9001> cluster nodes 8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 myself,master - 0 0 0 connected 5786e3237c7fa413ed22465d15be721f95e72cfa 192.168.11.40:9002@19002 master - 0 1620703357871 1 connected
cluster meets は、ノード間でステータス データ情報を交換するために使用される asynchronous コマンドです。実行後すぐに戻り、実行されます。ターゲット ノードとの内部ハンドシェイク通信:
ノード 9001 は、ローカルで 9002 ノード情報オブジェクトを作成し、ミート メッセージを送信します。
-
ミートを受信した後、メッセージが送信されると、ノード 9002 は 9001 ノードの情報を保存し、ポン メッセージに応答します。
その後、ノード 9001 と 9002 はピンポン メッセージを通じて定期的に通信します。
クラスター内任意の ノードは、cluster meets コマンドを実行して、新しいノードに参加できます。ハンドシェイク ステータスは、メッセージを通じてクラスター内に伝播されます。他のノードは自動的に新しいノードを検出し、開始します。
ノードがハンドシェイクを確立した後、クラスターは正常に動作できません。この時点では、クラスターは オフライン ステータスになり、すべてのデータの読み取りと書き込みが禁止されます。スロットがノードに割り当てられていないため、クラスターはスロットのノードへのマッピングを完了できません
192.168.11.40:9001> set hello world (error) CLUSTERDOWN Hash slot not served 192.168.11.40:9001> cluster info cluster_state:fail cluster_slots_assigned:0 cluster_slots_ok:0 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:0 ...
3。スロットの割り当て
Redis クラスターはすべてのデータを 16384 にマッピングします。スロット真ん中。すべてのスロット がノードに割り当てられている場合にのみ、クラスターはオンライン状態になります
割り当てられたスロット:
/usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9001 cluster addslots {0..5461} /usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9002 cluster addslots {5462..10922} /usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9003 cluster addslots {10923..16383}
クラスター情報の表示:
192.168.11.40:9001> cluster info cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:3 ... 192.168.11.40:9001> cluster nodes cebb7ed63d469748d4015ede6b4a0f5ff59c9322 192.168.11.40:9006@19006 master - 0 1620704406746 0 connected 1b7785f80c4712c6ba4abd71cc93027fa85a02f8 192.168.11.40:9005@19005 master - 0 1620704406000 4 connected 8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 myself,master - 0 1620704404000 2 connected 0-5461 9408059de8b2dd712f0a9381a3b7aad561aef206 192.168.11.40:9004@19004 master - 0 1620704407753 5 connected 85ceb9826e8aa003169c46fb4ba115c72002d4f9 192.168.11.40:9003@19003 master - 0 1620704407000 3 connected 10923-16383 5786e3237c7fa413ed22465d15be721f95e72cfa 192.168.11.40:9002@19002 master - 0 1620704408763 1 connected 5462-10922
各人スロットを処理するノードには、障害が発生したときに自動的にフェイルオーバーできるように、スレーブ ノードが必要です。
初めて起動されるノードとスロットが割り当てられるノードは両方ともマスター ノード。スレーブ ノードは、マスター ノードのスロット情報と関連データをレプリケートする役割を果たします。
192.168.11.40:9004> cluster replicate 8ccdb0963411ebd05ce21952bdd4b7597825afdc OK 192.168.11.40:9005> cluster replicate 5786e3237c7fa413ed22465d15be721f95e72cfa OK 192.168.11.40:9006> cluster replicate 85ceb9826e8aa003169c46fb4ba115c72002d4f9 OK
192.168.11.40:9001> cluster nodes cebb7ed63d469748d4015ede6b4a0f5ff59c9322 192.168.11.40:9006@19006 slave 85ceb9826e8aa003169c46fb4ba115c72002d4f9 0 1620704825926 3 connected 1b7785f80c4712c6ba4abd71cc93027fa85a02f8 192.168.11.40:9005@19005 slave 5786e3237c7fa413ed22465d15be721f95e72cfa 0 1620704825000 1 connected 8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 myself,master - 0 1620704824000 2 connected 0-5461 9408059de8b2dd712f0a9381a3b7aad561aef206 192.168.11.40:9004@19004 slave 8ccdb0963411ebd05ce21952bdd4b7597825afdc 0 1620704824921 2 connected 85ceb9826e8aa003169c46fb4ba115c72002d4f9 192.168.11.40:9003@19003 master - 0 1620704824000 3 connected 10923-16383 5786e3237c7fa413ed22465d15be721f95e72cfa 192.168.11.40:9002@19002 master - 0 1620704823914 1 connected 5462-10922
2。redis-trib.rb を使用してクラスターを構築します (古い)
[ Redis5.0 以降のクラスターを構築するには、redis-cli を使用します。]
redis-trib.rb は、Ruby で実装された Redis クラスター管理ツールです。内部的には、クラスター関連のコマンドを使用して、クラスターの作成、検査、スロットの移行、バランシングなどの一般的な運用およびメンテナンス操作を簡素化します。
1. Ruby 環境
Ruby のインストール
wget https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.3.tar.gz tar -zxvf ruby-2.7.3.tar.gz cd ruby-2.7.3 ./configure --prefix=/usr/local/ruby make make install cd /usr/local/ruby cp bin/ruby /usr/local/bin cp bin/gem /usr/local/bin
rubygem redis の依存関係をインストールします
wget http://rubygems.org/downloads/redis-4.2.5.gem gem install -l redis-4.2.5.gem gem list
問題が発生しました
$ gem install -l redis-4.2.5.gem ERROR: Loading command: install (LoadError) cannot load such file -- zlib ERROR: While executing gem ... (NoMethodError) undefined method `invoke_with_build_args' for nil:NilClass
解決策 (openssl についても同じ)
yum -y install zlib-devel cd ruby-2.7.3/ext/zlib ruby ./extconf.rb make make install
redis-trib.rbをインストールします
cp /{redis_home}/src/redis-trib.rb /usr/local/bin redis-trib.rb
2クラスターを作成します
# --replicas 1:指定集群中每个主节点配备几个从节点 redis-trib.rb create --replicas 1 192.168.11.40:9001 192.168.11.40:9002 192.168.11.40:9003 192.168.11.40:9004 192.168.11.40:9005 192.168.11.40:9006 # 集群完整性检查 redis-trib.rb check 192.168.11.40:9001
- #ノード ハンドシェイクとスロット割り当てプロセスを自動的に完了します ##マスターとスレーブが確実に接続されるように最善を尽くしますノードは同じマシン上に割り当てられていません
- #ノード リストの順序はマスター/スレーブの役割を決定するために使用されます。最初にマスター ノード、次にスレーブ ノード
- ノード アドレスは、スロット/データを含まないノードである必要があります。そうでない場合は、クラスターの作成が拒否されます
- 3. redis-cli を使用して構築しますクラスター
redis-cli --cluster create 192.168.11.40:9001 192.168.11.40:9002 192.168.11.40:9003 192.168.11.40:9004 192.168.11.40:9005 192.168.11.40:9006 --cluster-replicas 1
以上がCentOS7でRedisクラスターを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Redisは、高性能と柔軟性のためにSQLデータベースを超えています。 1)Redisは、メモリストレージを介して非常に速い読み取りおよび書き込み速度を実現します。 2)複雑なデータ処理に適したリストやコレクションなど、さまざまなデータ構造をサポートしています。 3)シングルスレッドモデルは開発を簡素化しますが、高い並行性はボトルネックになる可能性があります。

Redisは、並行性が高く、遅延の低いシナリオの従来のデータベースよりも優れていますが、複雑なクエリやトランザクション処理には適していません。 1.Redisは、メモリストレージ、高速読み取り速度、および高い並行性と低遅延の要件に適しています。 2.従来のデータベースは、ディスクに基づいており、複雑なクエリとトランザクション処理をサポートし、データの一貫性と永続性が強い。 3. Redisは、従来のデータベースのサプリメントまたは代替品として適していますが、特定のビジネスニーズに応じて選択する必要があります。

redisisahigh-performancein-memorydatastructurturturestorettorethatedcelsinsinsinsversility.1)itsupportsvariousdatastructureslikestrings、lists、andsets.2)redisisaninmorydatabasewithpersistenceoptions、daturing datasafety.3)

Redisは主にデータベースですが、単なるデータベース以上のものです。 1.データベースとして、Redisは持続性をサポートし、高性能のニーズに適しています。 2。キャッシュとして、Redisはアプリケーションの応答速度を改善します。 3。メッセージブローカーとして、Redisはリアルタイム通信に適したPublish-Subscribeモードをサポートしています。

redisisamultifaCetedTooltoToolvesSasadatabase、server、andmore。

Redisisanopen-Source、In-MemoryDatastructurestoreStoreSadatabase、Cache、AndmessageBroker、ExcellingInspeedandversatility.ItisisWidely-susederCaching、Real-Timeanalytics、Session Management、AndleaderboardsdueTotutsuptorututrututrututruturturturturturturesturesaddataacys

Redisは、データベース、キャッシュ、メッセージブローカーとして使用されるオープンソースメモリデータ構造ストレージであり、高速応答と高い並行性が必要なシナリオに適しています。 1.Redisはメモリを使用してデータを保存し、マイクロ秒の読み取り速度と書き込み速度を提供します。 2.文字列、リスト、コレクションなどのさまざまなデータ構造をサポートします。3。Redisは、RDBおよびAOFメカニズムを介してデータの持続性を実現します。 4.シングルスレッドモデルと多重化テクノロジーを使用して、リクエストを効率的に処理します。 5.パフォーマンス最適化戦略には、LRUアルゴリズムとクラスターモードが含まれます。

Redisの関数には、主にキャッシュ、セッション管理、その他の機能が含まれます。1)キャッシュ関数はメモリを介してデータを保存して読み取り速度を向上させ、eコマースWebサイトなどの高周波アクセスシナリオに適しています。 2)セッション管理関数は、分散システムでセッションデータを共有し、有効期限のあるメカニズムを通じて自動的にクレンジングします。 3)リアルタイムメッセージプッシュおよびマルチスレッドシステムおよびその他のシナリオに適した、パブリッシュサブスクライブモード、分散ロック、カウンターなどのその他の機能。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

Dreamweaver Mac版
ビジュアル Web 開発ツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版
中国語版、とても使いやすい

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!
