Redisクラスタの運用例を詳しく解説
この記事では、Redis に関する関連知識を提供します。主に、Redis インスタンスの追加、マスター ノードとしての 8007 の構成、8007 としての 8008 の構成など、クラスター操作に関連する問題が整理されています。ノードなどについて説明しますので、皆様のお役に立てれば幸いです。
推奨される学習: Redis ビデオ チュートリアル
既存の基盤に基づいて、ここでは 3 つの主要な機能の基本バージョンを示します。 3 つ目から、アーキテクチャは次のとおりです
1. クラスターを開始します ##/usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8001/redis.conf
/usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8002/redis.conf
/usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8003/redis.conf
/usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8004/redis.conf
/usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8005/redis.conf
/usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8006/redis.conf
ログイン後にコピー
/usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8001/redis.conf /usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8002/redis.conf /usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8003/redis.conf /usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8004/redis.conf /usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8005/redis.conf /usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8006/redis.conf
クラスター ステータスの表示: クラスター ノード
上の図からわかるように、クラスター全体は 3 つのマスター ノードで正常に実行されています。および 3 つのスレーブ ノード、
- ポート 8001 のインスタンス ノードには、ハッシュ スロット 0 ~ 5460 が格納されます。
- ポートのインスタンス ノード8002 はハッシュ スロット 5461 ~ 10922、
- ポート 8003 のインスタンス ノードにこれらのハッシュ スロット 10923 ~ 16383、
を保存します。 3 つのマスター ノードには、すべてのハッシュ スロットが格納されます。 Redis クラスターを構成するストレージ スロット。スレーブ ポイントは、各マスター ノードのバックアップ スレーブ ノードです。ストレージ スロットは表示されません。
2. クラスターの操作
元のクラスターをベースに、マスター (8007) とスレーブ (8008) を 1 つずつ追加します。ノード クラスターについては次の図を参照してください。新しいノードは点線のボックスで表されます
2.1. redis インスタンス
## /usr/local/redis-cluster の下に 8007 および 8008 フォルダーを作成し、8001 フォルダーの下にある redis.conf ファイルを 8007 および 8008 フォルダーにコピーします次へmkdir 8007 8008
cd 8001
cp redis.conf /usr/local/redis‐cluster/8007/
cp redis.conf /usr/local/redis‐cluster/8008/
# 修改8007文件夹下的redis.conf配置文件
vim /usr/local/redis‐cluster/8007/redis.conf
# 修改如下内容:
port:8007
dir /usr/local/redis‐cluster/8007/
cluster‐config‐file nodes‐8007.conf
# 修改8008文件夹下的redis.conf配置文件
vim /usr/local/redis‐cluster/8008/redis.conf
# 修改内容如下:
port:8008
dir /usr/local/redis‐cluster/8008/
cluster‐config‐file nodes‐8008.conf
# 启动8007和8008俩个服务并查看服务状态
/usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8007/redis.conf
/usr/local/redis‐5.0.3/src/redis‐server /usr/local/redis‐cluster/8008/redis.conf
ps ‐el | grep redis
2.2. 8007 をマスター ノードとして設定#add-node コマンドを使用して新しいマスター ノードを追加します8007 (マスター)、前の ip:port は新しいノードであり、後の ip:port は既知の既存のノードです。ログの最後に「[OK] 新しいノードが正しく追加されました」というプロンプトが表示される場合は、それを意味します。新しいノードが正常に追加されたことを確認します
/usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐‐cluster add‐node 192.168.0.61:8007 192.168.0.61:8001
/usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐c ‐h 192.168.0.61 ‐p 8001 192.168.0.61:8001> cluster nodes
#注: ノードが正常に追加されると、新しく追加されたノードには何も割り当てられていないため、データがありません。スロット (ハッシュ スロット)。新しいノードに手動でハッシュを割り当てる必要があります。スロット
redis-cli コマンドを使用して、8007 にハッシュ スロットを割り当てます。クラスター内のマスター ノードを見つけて再シャードします
#2.3. 8008 を 8007/usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐‐cluster reshard 192.168.0.61:8001ログイン後にコピー
のスレーブ ノードとして構成します#スレーブ ノード 8008 をクラスターに追加し、クラスターのステータスを確認します
/usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐‐cluster add‐node 192.168.0.61:8008 192.168.0.61:8001
ログイン後にコピー
は次のとおりです:
/usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐‐cluster add‐node 192.168.0.61:8008 192.168.0.61:8001
#図に示すように、まだマスター ノードであり、ハッシュ スロットは割り当てられていません。
理由: 現在のノード (スレーブ ノード) のマスター ノード ID を指定するには、replicate コマンドを実行する必要があります。まず、新しいノードのクライアントに接続する必要があります。 8008 ノードを追加し、クラスター コマンドを使用して現在の 8008 (スレーブ) ノードを操作し、マスター ノードに割り当てます (ここでは前に作成した 8007 マスター ノードを使用します)
コマンドを実行します
/usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐c ‐h 192.168.0.61 ‐p 8008 192.168.0.61:8008> cluster replicate 2728a594a0498e98e4b83a537e19f9a0a3790f38 #后面这串id为8007的节点id
クラスターのステータスを確認します。ノード 8008 はノード 8007 のスレーブ ノードとして正常に追加されました。
2.4、删除8080从节点[不删除四主四从]
用del-node删除从节点8008,指定删除节点ip和端口,以及节点id(红色为8008节点id)
/usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐‐cluster del‐node 192.168.0.61:8008 a1cfe35722d151cf70585cee212755653 93c0956ログイン後にコピー再次查看集群状态,如下图所示,8008这个slave节点已经移除,并且该节点的redis服务也已被停止
2.5、删除8007主节点[不删除四主四从]
因为主节点的里面是有分配了hash槽的,所以我们这里必须先把8007里的hash槽放入到其他的可用主节点中去,然后再进行移除节点操作,不然会出现数据丢失问题(目前只能把master的数据迁移到一个节点上,暂时做不了平均分配功能),执行命令如下:
/usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐‐cluster reshard 192.168.0.61:8007ログイン後にコピー迁移验证:会发现8007下面已经没有任何hash槽了,证明迁移成功!
用del-node命令删除8007主节点即可
/usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐‐cluster del‐node 192.168.0.61:8007 2728a594a0498e98e4b83a537e19f9a0a 3790f38ログイン後にコピー查看最终集群状态,发现一切恢复如初,至此水平扩展结束
推荐学习:Redis视频教程
以上がRedisクラスタの運用例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











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

Redisデータをクリアする方法:Flushallコマンドを使用して、すべての重要な値をクリアします。 FlushDBコマンドを使用して、現在選択されているデータベースのキー値をクリアします。 [選択]を使用してデータベースを切り替え、FlushDBを使用して複数のデータベースをクリアします。 DELコマンドを使用して、特定のキーを削除します。 Redis-CLIツールを使用してデータをクリアします。

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

Redis指令を使用するには、次の手順が必要です。Redisクライアントを開きます。コマンド(動詞キー値)を入力します。必要なパラメーターを提供します(指示ごとに異なります)。 Enterを押してコマンドを実行します。 Redisは、操作の結果を示す応答を返します(通常はOKまたは-ERR)。

Redisを使用して操作をロックするには、setnxコマンドを介してロックを取得し、有効期限を設定するために有効期限コマンドを使用する必要があります。特定の手順は次のとおりです。(1)SETNXコマンドを使用して、キー価値ペアを設定しようとします。 (2)expireコマンドを使用して、ロックの有効期限を設定します。 (3)Delコマンドを使用して、ロックが不要になったときにロックを削除します。

Centosシステムでは、Redis構成ファイルを変更するか、Redisコマンドを使用して悪意のあるスクリプトがあまりにも多くのリソースを消費しないようにすることにより、LUAスクリプトの実行時間を制限できます。方法1:Redis構成ファイルを変更し、Redis構成ファイルを見つけます:Redis構成ファイルは通常/etc/redis/redis.confにあります。構成ファイルの編集:テキストエディター(VIやNANOなど)を使用して構成ファイルを開きます:sudovi/etc/redis/redis.conf luaスクリプト実行時間制限を設定します。

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

Redisデータの有効期間戦略には2つのタイプがあります。周期削除:期限切れのキーを削除する定期的なスキャン。これは、期限切れの時間帯-remove-countおよび期限切れの時間帯-remove-delayパラメーターを介して設定できます。怠zyな削除:キーが読み取られたり書かれたりした場合にのみ、削除の有効期限が切れたキーを確認してください。それらは、レイジーフリーレイジーエビクション、レイジーフリーレイジーエクスピア、レイジーフリーラジーユーザーのパラメーターを介して設定できます。
