redis クラスターの構築
(学習ビデオ共有: redis ビデオ チュートリアル)
正式な内容を紹介する前に, まずはスタンドアロン版のredisを構築する手順を紹介します。
- redis 圧縮パッケージをダウンロードし、圧縮ファイルを解凍します;
- 解凍された redis ファイル ディレクトリに入力し (この時点で Makefile ファイルが表示されます)、redis をコンパイルしますソース ファイル;
- コンパイルされた redis ソース ファイルを /usr/local/redis ディレクトリにインストールします。/local ディレクトリに redis ディレクトリがない場合は、新しい redis ディレクトリが自動的に作成されます。
- /usr/local/redis/bin ディレクトリに入り、./redis-server で redis を直接起動します (この時点では redis はフロントエンドで起動します);
- redis の起動モードをバックエンド起動に変更します。具体的な方法は、解凍した redis ファイルの下に redis を置き、.conf ファイルを /usr/local/redis/bin ディレクトリにコピーし、redis.conf ファイルを変更します -> daemonize: no to daemonize: yse;
- /bin ディレクトリに ./redis を渡す -server redis.conf で redis が開始されます (この時点ではバックグラウンドで起動します)。
以上で、redis スタンドアロン版のインストールと起動が完了しました。
画像付きの詳細な手順については、「-> redis の概要」を参照してください。
冗長になっていることをお許しください。わかりました。redis クラスターの構築というトピックに戻りましょう。
1. Redis クラスターの概要
- redis は、インターネットで愛用されているオープン ソースのキー値ストレージ システムです。会社の好意。 redis3.0 バージョンより前は、シングルトン モードのみがサポートされ、バージョン 3.0 以降ではクラスターのみがサポートされていました。ここでは redis3.0.0 バージョンを使用しています。
- redis クラスターは P2P モードを採用しており、完全に分散化されており、セントラル ノードまたはエージェント ノードがあります。
- Redis クラスターには統合された入り口がありません。クライアントがクラスターに接続するとき、クラスター内のどのノードにも接続できます。クラスター内のノードは、次のノードと通信します。 (PING-PONG メカニズム)、各ノードは Redis インスタンスです;
- クラスターの高可用性を実現するため、つまりノードが健全かどうか (正常に使用できるかどうか) を判断します。 、redis-cluster にはこのような投票フォールト トレランス メカニズムがあります。クラスター内のノードの半分以上がノードがダウンしていると投票した場合、このノードは失敗します。これは、ノードがダウンしているかどうかを判断する方法です;
- それでは、クラスタがダウンしているかどうかを判断するにはどうすればよいですか? -> クラスタ内のいずれかのノードがダウンしていて、そのノードにスレーブ ノード (バックアップ ノード) がない場合)、次にこれ クラスターがダウンしています。これは、クラスターがダウンしているかどうかを判断する方法です。
- では、いずれかのノードがハングアップすると (スレーブ ノードがない場合)、クラスターがハングアップするのはなぜでしょうか? -> クラスターには 16384 個の組み込みスロット (ハッシュ スロット) があり、すべての物理ノードがこれらの 16384[0-16383] スロットにマッピングされているか、これらのスロットが各ノードに均等に分散されているためです。データの一部 (キーと値) を Redis クラスターに保存する必要がある場合、Redis はまずキーに対して crc16 アルゴリズムを実行し、次に結果を取得します。次に、この結果の余りを 16384 まで計算します。この余りはスロット [0 ~ 16383] の 1 つに対応し、キーと値がどのノードに格納されているかを決定します。したがって、ノードがハングアップすると、そのノードに対応するスロットが使用できなくなり、クラスターが正常に動作しなくなります。
- 要約すると、各 Redis クラスターには理論的には最大 16,384 個のノードを含めることができます。
2. クラスター構築に必要な環境
2.1 投票フォールト トレランス メカニズムではノードの半分以上がそれを認識する必要があるため、Redis クラスターには少なくとも 3 つのノードが必要です。あるノードが故障しダウンしているため、2ノードでクラスタを構成できません。
2.2 クラスターの高可用性を確保するには、各ノードにスレーブ ノード、つまりバックアップ ノードが必要であるため、Redis クラスターには少なくとも 6 台のサーバーが必要です。それほど多くのサーバーがなく、それほど多くの仮想マシンを起動できないため、ここで構築するのは疑似分散クラスターです。つまり、1 つのサーバーで 6 つの Redis インスタンスを仮想的に実行し、ポート番号が変更されます。 (7001-7006) もちろん、実際の本番環境の Redis クラスターのセットアップはここと同じです。
2.3 Ruby のインストール
3. クラスターを構築するための具体的な手順は次のとおりです (ファイアウォールをオフにすることに注意してください)
3.1 usr/ に新しい redis-cluster ディレクトリを作成しますクラスターノードを保存するローカルディレクトリ
3.2 redis ディレクトリの下の bin ディレクトリにあるすべてのファイルを /usr/local/redis-cluster/redis01 ディレクトリにコピーします。ここにディレクトリがあれば、自動的に作成されます。操作コマンドは次のとおりです (現在のパスに注意してください):
cp -r redis/bin/ redis-cluster/redis01
3.3 redis01 ディレクトリ内のスナップショット ファイル dump.rdb を削除し、ディレクトリ内の redis.cnf ファイルを変更します 具体的には、ポート番号を 7001 に変更する、ともう 1 つは、クラスター作成モードでコメントを開くことです。以下の図に示すように:
dump.rdb ファイルを削除します。
ポート番号を 7001 に変更します。デフォルトは 6379
のコメントをオンにします。クラスターが有効なはい
3.4 redis-cluster/redis01 ファイルの 5 つのコピーを redis-cluster ディレクトリ (redis02-redis06) にコピーし、6 つの Redis インスタンスを作成し、Redis クラスターの 6 つのノードをシミュレートします。 。次に、残りの 5 つのファイルの下にある redis.conf のポート番号をそれぞれ 7002 ~ 7006 に変更します。以下の図に示すように:
redis02-06 ディレクトリを作成します
redis.conf ファイルのポート番号を 7002-7006# に変更します# 3.5 それでは起動 すべてのredisノードを一つずつ起動するのは面倒なので、redisノードを一括起動するためのスクリプトファイルを用意します コマンドはstart-all.sh ファイルの内容は以下の通りです:
cd redis01 ./redis-server redis.conf cd .. cd redis02 ./redis-server redis.conf cd .. cd redis03 ./redis-server redis.conf cd .. cd redis04 ./redis-server redis.conf cd .. cd redis05 ./redis-server redis.conf cd .. cd redis06 ./redis-server redis.conf cd ..3.6 起動スクリプト ファイルの作成 その後、スクリプトを実行できるように権限を変更する必要があります。手順は次のとおりです。
##3.7 start-all.sh スクリプトを実行して 6 つの Redis ノードを起動します
3.8 ok. これまでのところ、6 つの Redis ノードは正常に起動しています。 , クラスターが正式に開始されます。上記はすべて準備条件です。長く見えるので面倒だと思わないでください。実際、上記の手順は 6 つの Redis インスタンス (6 ノード) を作成して起動するという一文だけです。
クラスターを構築するには、redis 解凍ファイルのソース コードに含まれるツール (スクリプト ファイル) を使用する必要があります。このツールは Ruby スクリプト ファイルであるため、このツールの実行には、JVM 上で Java 言語を実行するのと同等の Ruby 実行環境が必要です。したがって、ruby をインストールする必要があります。手順は次のとおりです:
chmod +x start-all.sh
次に、ruby 関連のパッケージをサーバーにインストールする必要があります。ここでは redis-3.0.0.gem を使用しています。注意してください: redis と Ruby のバージョン パッケージのバージョンを一貫した状態に保つことが最善です。 Ruby パッケージをサーバーにインストールします。図に示すように、ダウンロードしてインストールする必要があります。
インストール コマンドは次のとおりです。
yum install ruby
3.9 前のステップで、ruby ツールに必要な実行環境と Ruby パッケージがインストールされました。次に、ruby スクリプト ツールをコピーする必要がありますusr/local/redis-cluster ディレクトリにコピーします。では、この Ruby スクリプト ツールはどこにあるのでしょうか?前述したように、redis 解凍ファイル、つまり redis/src ディレクトリ内の redis-trib.rb ファイルのソース コード内にあります。
3.10 Ruby ツール (redis-trib.rb) を redis-cluster ディレクトリにコピーします。手順は次のとおりです。スクリプト ファイルを使用する クラスターを構築する手順は次のとおりです。
gem install redis-3.0.0.gem
注: ここでは、独自のサーバー IP に基づいて、対応する IP アドレスを入力する必要があります。


yes を手動で入力する必要がある場所があります。
この時点で、Redi クラスターは正常に確立されています。テキストの最後の段落に注目してください。各ノードに割り当てられたスロット (ハッシュ スロット) が示されています。ここには合計 6 つのノードがあり、そのうち 3 つはスレーブ ノードであるため、3 つのマスター ノードは 0 ~ 5460、5461 にマップされます。 -10922、10933-16383ソルト。
redis01/redis-cli -p 7001 -c
注意:一定要加上-c,不然节点之间是无法自动跳转的!如下图可以看到,存储的数据(key-value)是均匀分配到不同的节点的:
四、结语
呼~~~长舒一口气…终于搭建好了Redis集群。
整个过程其实挺简单,本篇主要正对入门级别的小伙伴,插入了很多图片,所以显得冗长,希望大家多多理解,如果不当之处,还望及时指正~
最后,加上两条redis集群基本命令:
1.查看当前集群信息
cluster info
2.查看集群里有多少个节点
cluster nodes
相关推荐:redis数据库教程
以上がRedis クラスター構築に関する初心者向けチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Redisの主な機能には、速度、柔軟性、豊富なデータ構造のサポートが含まれます。 1)速度:Redisはメモリ内データベースであり、読み取り操作はほとんど瞬間的で、キャッシュとセッション管理に適しています。 2)柔軟性:複雑なデータ処理に適した文字列、リスト、コレクションなど、複数のデータ構造をサポートします。 3)データ構造のサポート:さまざまなビジネスニーズに適した文字列、リスト、コレクション、ハッシュテーブルなどを提供します。

Redisのコア関数は、高性能のメモリ内データストレージおよび処理システムです。 1)高速データアクセス:Redisはデータをメモリに保存し、マイクロ秒レベルの読み取り速度と書き込み速度を提供します。 2)豊富なデータ構造:文字列、リスト、コレクションなどをサポートし、さまざまなアプリケーションシナリオに適応します。 3)永続性:RDBとAOFを介してディスクにデータを持続します。 4)サブスクリプションを公開:メッセージキューまたはリアルタイム通信システムで使用できます。

Redisは、次のようなさまざまなデータ構造をサポートしています。1。文字列、単一価値データの保存に適しています。 2。キューやスタックに適したリスト。 3.非重複データの保存に使用されるセット。 4。ランキングリストと優先キューに適した注文セット。 5。オブジェクトまたは構造化されたデータの保存に適したハッシュテーブル。

Redisカウンターは、Redisキー価値ペアストレージを使用して、カウンターキーの作成、カウントの増加、カウントの減少、カウントのリセット、およびカウントの取得など、カウント操作を実装するメカニズムです。 Redisカウンターの利点には、高速速度、高い並行性、耐久性、シンプルさと使いやすさが含まれます。ユーザーアクセスカウント、リアルタイムメトリック追跡、ゲームのスコアとランキング、注文処理などのシナリオで使用できます。

Redisコマンドラインツール(Redis-Cli)を使用して、次の手順を使用してRedisを管理および操作します。サーバーに接続し、アドレスとポートを指定します。コマンド名とパラメーターを使用して、コマンドをサーバーに送信します。ヘルプコマンドを使用して、特定のコマンドのヘルプ情報を表示します。 QUITコマンドを使用して、コマンドラインツールを終了します。

Redisクラスターモードは、シャードを介してRedisインスタンスを複数のサーバーに展開し、スケーラビリティと可用性を向上させます。構造の手順は次のとおりです。異なるポートで奇妙なRedisインスタンスを作成します。 3つのセンチネルインスタンスを作成し、Redisインスタンスを監視し、フェールオーバーを監視します。 Sentinel構成ファイルを構成し、Redisインスタンス情報とフェールオーバー設定の監視を追加します。 Redisインスタンス構成ファイルを構成し、クラスターモードを有効にし、クラスター情報ファイルパスを指定します。各Redisインスタンスの情報を含むnodes.confファイルを作成します。クラスターを起動し、CREATEコマンドを実行してクラスターを作成し、レプリカの数を指定します。クラスターにログインしてクラスター情報コマンドを実行して、クラスターステータスを確認します。作る

Redisのキューを読むには、キュー名を取得し、LPOPコマンドを使用して要素を読み、空のキューを処理する必要があります。特定の手順は次のとおりです。キュー名を取得します:「キュー:キュー」などの「キュー:」のプレフィックスで名前を付けます。 LPOPコマンドを使用します。キューのヘッドから要素を排出し、LPOP Queue:My-Queueなどの値を返します。空のキューの処理:キューが空の場合、LPOPはnilを返し、要素を読む前にキューが存在するかどうかを確認できます。

RedisクラスターでのZsetの使用:Zsetは、要素をスコアに関連付ける順序付けられたコレクションです。シャード戦略:a。ハッシュシャーディング:ZSTキーに従ってハッシュ値を分配します。 b。範囲シャード:要素スコアに従って範囲に分割し、各範囲を異なるノードに割り当てます。操作の読み取りと書き込み:a。読み取り操作:ZSetキーが現在のノードのシャードに属している場合、ローカルで処理されます。それ以外の場合は、対応するシャードにルーティングされます。 b。書き込み操作:Zsetキーを保持しているシャードに常にルーティングされます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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