目次
2.1. redis インスタンス" >2.1. redis インスタンス
#add-node コマンドを使用して新しいマスター ノードを追加します8007 (マスター)、前の ip:port は新しいノードであり、後の ip:port は既知の既存のノードです。ログの最後に「[OK] 新しいノードが正しく追加されました」というプロンプトが表示される場合は、それを意味します。新しいノードが正常に追加されたことを確認します" >2.2. 8007 をマスター ノードとして設定#add-node コマンドを使用して新しいマスター ノードを追加します8007 (マスター)、前の ip:port は新しいノードであり、後の ip:port は既知の既存のノードです。ログの最後に「[OK] 新しいノードが正しく追加されました」というプロンプトが表示される場合は、それを意味します。新しいノードが正常に追加されたことを確認します
 2.4、删除8080从节点[不删除四主四从]" > 2.4、删除8080从节点[不删除四主四从]
 2.5、删除8007主节点[不删除四主四从]" > 2.5、删除8007主节点[不删除四主四从]
ホームページ データベース Redis Redisクラスタの運用例を詳しく解説

Redisクラスタの運用例を詳しく解説

Jun 23, 2022 pm 12:24 PM
redis

この記事では、Redis に関する関連知識を提供します。主に、Redis インスタンスの追加、マスター ノードとしての 8007 の構成、8007 としての 8008 の構成など、クラスター操作に関連する問題が整理されています。ノードなどについて説明しますので、皆様のお役に立てれば幸いです。

Redisクラスタの運用例を詳しく解説

推奨される学習: 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
ログイン後にコピー

クラスター ステータスの表示: クラスター ノード

上の図からわかるように、クラスター全体は 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 にハッシュ スロットを割り当てます。クラスター内のマスター ノードを見つけて再シャードします

/usr/local/redis‐5.0.3/src/redis‐cli ‐a user ‐‐cluster reshard 192.168.0.61:8001
ログイン後にコピー

#2.3. 8008 を 8007

のスレーブ ノードとして構成します#スレーブ ノード 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
ログイン後にコピー
は次のとおりです:

#図に示すように、まだマスター ノードであり、ハッシュ スロットは割り当てられていません。

理由: 現在のノード (スレーブ ノード) のマスター ノード 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Redisクラスターモードの構築方法 Redisクラスターモードの構築方法 Apr 10, 2025 pm 10:15 PM

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

Redisデータをクリアする方法 Redisデータをクリアする方法 Apr 10, 2025 pm 10:06 PM

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

Redisキューの読み方 Redisキューの読み方 Apr 10, 2025 pm 10:12 PM

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

Redisコマンドの使用方法 Redisコマンドの使用方法 Apr 10, 2025 pm 08:45 PM

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

Redisロックの使用方法 Redisロックの使用方法 Apr 10, 2025 pm 08:39 PM

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

Centos RedisでLUAスクリプト実行時間を構成する方法 Centos RedisでLUAスクリプト実行時間を構成する方法 Apr 14, 2025 pm 02:12 PM

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

Redisコマンドラインの使用方法 Redisコマンドラインの使用方法 Apr 10, 2025 pm 10:18 PM

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

Redisの有効期限ポリシーを設定する方法 Redisの有効期限ポリシーを設定する方法 Apr 10, 2025 pm 10:03 PM

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

See all articles