目次
1. 手動構築
1. ノードの準備
(1) ディレクトリ構造
(2) 構成ファイルの準備
(3) サービスを開始します
2. ノード ハンドシェイク
3。スロットの割り当て
2。redis-trib.rb を使用してクラスターを構築します (古い)
1. Ruby 環境
2クラスターを作成します
ホームページ データベース Redis CentOS7でRedisクラスターを構築する方法

CentOS7でRedisクラスターを構築する方法

May 26, 2023 pm 01:34 PM
redis centos

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

CentOS HDFS構成を最適化する方法 CentOS HDFS構成を最適化する方法 Apr 14, 2025 pm 07:15 PM

CENTOSのHDFSパフォーマンスの向上:CENTOSのHDFS(Hadoop分散ファイルシステム)を最適化するための包括的な最適化ガイドには、ハードウェア、システム構成、ネットワーク設定を包括的に検討する必要があります。この記事では、HDFSパフォーマンスを改善するのに役立つ一連の最適化戦略を提供します。 1.ハードウェアのアップグレードと選択リソースの拡張:サーバーのCPU、メモリ、ストレージ容量を可能な限り増やします。高性能ハードウェア:高性能ネットワークカードとスイッチを採用して、ネットワークスループットを改善します。 2。システム構成微調整カーネルパラメーター調整:/etc/sysctl.confファイルを変更して、TCP接続番号、ファイルハンドル番号、メモリ管理などのカーネルパラメーターを最適化します。たとえば、TCP接続ステータスとバッファサイズを調整します

Centosシャットダウンコマンドライン Centosシャットダウンコマンドライン Apr 14, 2025 pm 09:12 PM

Centos Shutdownコマンドはシャットダウンし、構文はシャットダウン[オプション]時間[情報]です。オプションは次のとおりです。-hシステムをすぐに停止します。 -pシャットダウン後に電源をオフにします。 -r再起動; -t待機時間。時間は、即時(現在)、数分(分)、または特定の時間(HH:mm)として指定できます。追加の情報をシステムメッセージに表示できます。

CentosとUbuntuの違い CentosとUbuntuの違い Apr 14, 2025 pm 09:09 PM

Centosとubuntuの重要な違いは次のとおりです。起源(CentosはRed Hat、for Enterprises、UbuntuはDebianに由来します。個人用のDebianに由来します)、パッケージ管理(CentosはYumを使用し、安定性に焦点を当てます。チュートリアルとドキュメント)、使用(Centosはサーバーに偏っています。Ubuntuはサーバーやデスクトップに適しています)、その他の違いにはインストールのシンプルさが含まれます(Centos is Thin)

CentOS構成IPアドレス CentOS構成IPアドレス Apr 14, 2025 pm 09:06 PM

CentosでIPアドレスを構成する手順:現在のネットワーク構成を表示します:IP ADDRネットワーク構成ファイルを編集するファイル:Sudo VI/etc/sysconfig/network-scripts/ifcfg-eth0変更IPアドレス:iPaddr =編集マスクとゲートウェイの変更(オプション):Netmask = and edit edit gatewway = neters rettart rettart the sudo system system systemctrat

Centosのgitlabのバックアップ方法は何ですか Centosのgitlabのバックアップ方法は何ですか Apr 14, 2025 pm 05:33 PM

Centosシステムの下でのGitlabのバックアップと回復ポリシーデータセキュリティと回復可能性を確保するために、Gitlab on Centosはさまざまなバックアップ方法を提供します。この記事では、いくつかの一般的なバックアップ方法、構成パラメーター、リカバリプロセスを詳細に紹介し、完全なGitLabバックアップと回復戦略を確立するのに役立ちます。 1.手動バックアップGitlab-RakeGitlabを使用:バックアップ:コマンドを作成して、マニュアルバックアップを実行します。このコマンドは、gitlabリポジトリ、データベース、ユーザー、ユーザーグループ、キー、アクセスなどのキー情報をバックアップします。デフォルトのバックアップファイルは、/var/opt/gitlab/backupsディレクトリに保存されます。 /etc /gitlabを変更できます

Centos8でネットワークを再起動する方法 Centos8でネットワークを再起動する方法 Apr 14, 2025 pm 08:57 PM

Centos 8のネットワークの再起動には、次の手順が必要です。ネットワークサービス(NetworkManager)を停止し、ネットワークモジュール(R8169)をリロードし、ネットワークサービス(NetworkManager)を開始し、ネットワークステータスを確認します(Ping 8.8.8.8)

CentOS HDFS構成をチェックする方法 CentOS HDFS構成をチェックする方法 Apr 14, 2025 pm 07:21 PM

CENTOSシステムでHDFS構成をチェックするための完全なガイドこの記事では、CENTOSシステム上のHDFSの構成と実行ステータスを効果的に確認する方法をガイドします。次の手順は、HDFSのセットアップと操作を完全に理解するのに役立ちます。 Hadoop環境変数を確認します。最初に、Hadoop環境変数が正しく設定されていることを確認してください。端末では、次のコマンドを実行して、Hadoopが正しくインストールおよび構成されていることを確認します。HDFS構成をチェックするHDFSファイル:HDFSのコア構成ファイルは/etc/hadoop/conf/ディレクトリにあります。使用

Centosはメンテナンスを停止します2024 Centosはメンテナンスを停止します2024 Apr 14, 2025 pm 08:39 PM

Centosは、上流の分布であるRhel 8が閉鎖されたため、2024年に閉鎖されます。このシャットダウンはCentos 8システムに影響を与え、更新を継続し続けることができません。ユーザーは移行を計画する必要があり、提案されたオプションには、Centos Stream、Almalinux、およびRocky Linuxが含まれ、システムを安全で安定させます。

See all articles