Redisスタンドアロンインストールおよびクラスターインストール(バージョン5.0.9)

Redisスタンドアロンおよびクラスター構成(バージョン5.0.9)

インターネットから取得し、将来の参照に使用してください!そして、私が遭遇した問題のいくつかを記録しました!

スタンドアロン構成

テキストステップ

1. redis圧縮パッケージをダウンロードし、ファイルを解凍します(tar -xzvf xxx)
2。解凍後にredisファイルディレクトリに入り、redisソースファイルをコンパイルします(make、c環境なしでgcc)
3。コンパイルされたredisソースファイルをインストールします/ usr / local / redisディレクトリに移動します。/localディレクトリにredisディレクトリがない場合、redisディレクトリは自動的に作成されます
。4。/ usr / local / redis / binディレクトリに入り、redisを直接開始します。/redis-server(今回はフロントエンドです) redisを開始します)
5。redis起動モードをバックエンド起動に変更します。具体的な方法:解凍したredisファイルの下のredis.confファイルを/ usr / local / redis / binディレクトリにコピーしてから、redis.confファイルを変更します- >
daemonizenoがyesに変更されました6. / binディレクトリで、。/ redis-server redis.confからredisを開始します(これはバックグラウンド開始です)

実際の操作

実際の操作では、上記のシナリオは、redisスタンドアロンサーバーが正常にインストールされたことを示していますが、サーバーを起動するとフォアグラウンドで起動されるという欠点があります。セッションを閉じると、サーバープロセスがそれに対応します。が停止しているため、redisサーバーをバックグラウンドで起動するように設定する必要があります
。1。まず、redis.confファイルの下のこの場所を変更し、yesに変更します

。2 変更後、次の手順を再度実行し、最後にバックグラウンドを実行します。サーバーを正常に起動します

クラスターバージョンの構成

クラスターの概念の概要

1. redis3.0バージョンより前は、シングルトンモードのみがサポートされ、クラスターは3.0バージョン以降でのみサポートされていました。
2. redisクラスターは完全に分散化されたP2Pモデルを採用しており、中央ノードやプロキシノードはありません。
3. redisクラスターには統一された入口がありません。クライアントがクラスターに接続すると、クラスター内の任意のノードに接続できます。クラスター内のノードは相互に通信し(PING-PONGメカニズム)、各ノードはredisインスタンスです。
4.クラスターの高可用性を実現するため、つまりノードを正常に使用できるかどうかを判断するために、redis-clusterには投票障害許容メカニズムがあります。クラスター内のノードの半分以上がノードがダウンしていると投票した場合、ノードはダウンしています(失敗)。 、これはノードがダウンしているかどうかを判断する方法です。
5.では、クラスターがダウンしているかどうかが判断された場合はどうなりますか?->クラスター内のいずれかのノードがダウンしていて、そのノードのスレーブノード(バックアップノード)がない場合、クラスターはダウンしています。これは、クラスターがダウンしているかどうかを判別する方法です。
6.クラスターがハングしたときにノードがハングアップするのはなぜですか?->クラスターには16384スロット(ハッシュスロット)が組み込まれており、すべての物理ノードがこれらの16384 [0-16383]スロットにマップされているか、これらのスロットが各ノードに均等に分散されているためです。データ(キー値)をredisクラスターに格納する必要がある場合、redisは最初にキーに対してcrc16アルゴリズムを実行し、次に結果を取得します。次に、この結果の残りを16384にします。この残りは、スロット[0-16383]のいずれかに対応し、キー値が格納されているノードを決定します。したがって、ノードがダウンすると、そのノードに対応するスロットを使用できなくなり、クラスターが正常に動作しなくなります。読み取るときは、最初にこのキーでcrc16を実行し、残りを取得して対応する格納されたノードを取得します。
7.要約すると、各redisクラスターは理論上最大16,384ノードを持つことができます。

クラスター構築に必要な環境

1. redisクラスターには少なくとも3つのノードが必要です。これは、投票障害許容メカニズムでは、ノードの半分以上がノードがダウンしていると
見なし、そのノードがダウンしているため、2つのノードがクラスターを形成できないためです。2。redisクラスターの高可用性を確保するには、各ノードにはバックアップノードであるスレーブノードがあるため、redisクラスターには少なくとも6つのサーバーが必要です。

redisクラスターを構築する手順

インストール環境とバージョン:centos7、redis5.0.9。redisバージョンが5より前のクラスターはruby環境をインストールする必要があります(これには時間がかかり、解決する必要のあるさまざまな問題があります)。redis5.0.0以降、redis-trib.rbスクリプトのすべての機能がredis-cliに統合されました。この記事では、redis-cliの-clusterに基づいてクラスターを構築します。

インストールプロセス

1.ダウンロードして解凍します(上記のredisスタンドアロンバージョンからファイルを直接コピーしました)2。make makeinstallを
コンパイルしてインストールします3.redisノードを作成します/opt/redis-cluster/redis-5.0.5の下にredis_clusterフォルダーを作成します。同時に、redis7001、redis7002、redis7003、redis7004、redis7005、redis7006フォルダーを作成し、redis.confフォルダーをこれらの6つのフォルダーにそれぞれコピーし、6つの構成ファイルを変更し、次のように内容を変更します。


port 7001       // 端口7001,7002,7003,7004,7005,7006
bind 本机ip     //本地是127.0.0.1
daemonize yes   // 设置redis后台运行
pidfile /var/run/redis_7001.pid   // pidfile文件对应7001 ... 7006
cluster-enable yes  // 开区集群,把注释去掉
cluster-config-file nodes_7001.conf  // 集群的配置,配置文件首次启动自动生成
cluster-node-timeout 15000  // 请求超时,默认15秒,可自行设置
appendonly yes  // aof日志开启,有需要就开启,时间长了文件会很大
masterauth 123456 // 密码的
requirepass 123456 // 密码的

4.各ノードを起動します。バッチファイルstart-all.sh
スクリプトの内容は次のようになります。

正常に起動し

ます。5。redisの起動状況を確認します

[root@markusZhang redis-5.0.9]# netstat -tnlp | grep redis
tcp        0      0 127.0.0.1:7001          0.0.0.0:*               LISTEN      12164/src/redis-ser 
tcp        0      0 127.0.0.1:7002          0.0.0.0:*               LISTEN      12166/src/redis-ser 
tcp        0      0 127.0.0.1:7003          0.0.0.0:*               LISTEN      12171/src/redis-ser 
tcp        0      0 127.0.0.1:7004          0.0.0.0:*               LISTEN      12173/src/redis-ser 
tcp        0      0 127.0.0.1:7005          0.0.0.0:*               LISTEN      12175/src/redis-ser 
tcp        0      0 127.0.0.1:7006          0.0.0.0:*               LISTEN      12180/src/redis-ser 
tcp        0      0 127.0.0.1:17001         0.0.0.0:*               LISTEN      12164/src/redis-ser 
tcp        0      0 127.0.0.1:17002         0.0.0.0:*               LISTEN      12166/src/redis-ser 
tcp        0      0 127.0.0.1:17003         0.0.0.0:*               LISTEN      12171/src/redis-ser 
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      27577/./redis-serve 
tcp        0      0 127.0.0.1:17004         0.0.0.0:*               LISTEN      12173/src/redis-ser 
tcp        0      0 127.0.0.1:17005         0.0.0.0:*               LISTEN      12175/src/redis-ser 
tcp        0      0 127.0.0.1:17006         0.0.0.0:*               LISTEN      12180/src/redis-ser 

1つが欠落している場合は、どの構成ファイルが間違っているかを確認してください。6
。クラスターを作成します

[root@markusZhang redis-5.0.9]# redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1 -a 123456

–cluster-replicas 1コマンドの意味:1つのマスターと1つのスレーブ構成、6つのノードは3つのマスターと3つのスレーブ、
最後の-a 123456は設定されたパスワードです。

次のコマンドを使用して、クラスターのステータスを確認します。

[root@markusZhang redis-5.0.9]# redis-cli --cluster check 127.0.0.1:7001 -a 123456
# 后面的-a 123456 是设置的密码,如果你们设置密码,就添加上

総括する

このようにして、redisのスタンドアロンバージョンとクラスターバージョンが正常にインストールされます。redisクラスターのメカニズムを探り始めることができます!

おすすめ

転載: blog.csdn.net/MarkusZhang/article/details/108894679