Redisのクラスタへの第一章はじめに
1.1機能の概要
リモート辞書サーバー(Redisのは)永続的なストレージ・システム用のキーベースのキーと値のデータベースです。ハッシュ(ハッシュタイプ) - 文字列(文字列)、リスト(一覧)、SET(セット)、ZSET(順序集合ソートセット)を含むデータ構造の多様性をサポートします。これらのデータ型は、追加/削除して、交差点や労働組合、その差よりリッチな操作で、プッシュ/ポップをサポートされており、これらの操作はアトミックです。
1.2機能の説明
RedisのRedisのクラスタは、主に(設計における重要度の順に)、以下の目的を達成するために、分散型の実装です。
1000では、場合、ノードはまだよく行うことができ、スケーラビリティが直線的です。
ように何マージ操作は、Redisのデータモデルは、最も典型的な大規模なデータ値が良好な性能を持つことができるではありません。
セキュリティを書く:書き込み操作を、端部に接続されたほとんどのノードとそれらの顧客へのシステムの試みは、すべてが保存しました。しかし、ごく一部が書かれているが、まだあった認め失われます。なぜならマスターノードからのデータがネットワークを介して送信される同期を完了するために、マスターノード突然何のスレーブノードを起こさないだろう、クラッシュ問題は、データを同期。
状況:プライマリノードの大多数において到達可能であり、ケースから到達可能な、そのノードのうちの少なくとも1つを有する、Redisのクラスタパーティションはまだ到達不能各プライマリノードのために動作することができます。
1.3デプロイメントの手順
その指のスロットを使用して、クラスタデータを記憶し、実装マスタコピーのマスタノードからの3台のサーバ6つのノード、3つのマスターノード及び3つのスレーブノードは、完全に関連するノードからコピーされました。完全に中心に、マスタノードストレージコマンドによって割り当てられた三つのハッシュスロット。ノードクラスタの拡張および削除操作をサポートしています。
以下は、実際の生産環境のデプロイメントの手順です:
1 |
ホスト名 |
クラスタの最初のセット |
クラスタの第二セット |
メモリを割り当て |
IPアドレス |
2 |
jdpsclb-nfppzk01 |
6379 6479 |
6579 6679 |
彼らは50Gに合意しました |
172.1.2.3 |
3 |
jdpsclb-nfppzk02 |
6379 6479 |
6579 6679 |
彼らは50Gに合意しました |
172.1.2.4 |
4 |
jdpsclb-nfppzk03 |
6379 6479 |
6579 6679 |
彼らは50Gに合意しました |
172.1.2.5 |
本番環境では、3台のサーバ上の2つのRedisのクラスタを展開。書かれたRDISクラスタの最初のセットは、次のマニュアル。
章Redisのクラスタのインストールの展開
2.1環境の準備
準備ができてソフトウェアをインストールする2.1.1
繰り返し-2.3.3を
ルビー2.4.0
Redisの-3.2.1.gem
2.1.2環境検査
RPMをインストールする前に、コマンドクエリは、依存関係をインストールしていない場合は、インストールするにyumを使用する必要がある、Redisの依存関係を実行します。
Redisのクエリの依存関係は、コマンドをインストールされます。
develのTCLのはzlib-develの - RPM -q CPPのbinutilsのglibcのglibc-kernheadersのglibc-共通のglibc-develのgccがGCC-C ++のlibstdc ++を作ります
2.2 Redisのスタンドアロンインストール
注:インストール時にインストールするには、rootユーザーを使用して、実際の生産環境では、新しいユーザー(のRedisやキャッシュなど)の管理を作成してください。
インストール2.2.1のRedis
- インストールRedisの依存関係は、好ましくは、インストールするには、yumのコマンドを使用しました
YUMのbinutilsのglibcのglibc-kernheadersのglibc-共通のglibc-develのgccはgccの-C ++のlibstdc ++作るのcppをインストール-y - develのTCLのはzlib-develのを
- Redisのインストールパッケージは、ファイルディレクトリをアップロードするインストールパッケージを抽出します
インストールパス:/ホーム/ Redisの/クラスタ/
プロフィール:/home/redis/cluster/6379/redis.conf
Redisの-3.2.9.tar.gz -xzvf取り
- 実行解凍型インストールコマンドへのRedis-3.2.9ディレクトリには、make、make installを実行します
作ります
make installを
インストールが完了した後、srcディレクトリに、Redisの-trip.rbコピーファイルは/ usr / local / binに(rootユーザの環境変数を必要としなければなりません)
CPのRedisの-trib.rbは/ usr / local / binに
2.2.2設定ファイルを変更します
Redisのを使用して、ユーザーの操作に続いて
2.2.3新しいプロファイルディレクトリ
ます。mkdir -p /ホーム/ Redisの/スタンドアロン
2.2.3.1は、新しいディレクトリに設定ファイルをコピーして設定します。
コンフィギュレーションファイルをコピーします
CPは/ opt /のRedis / Redisの-3.2.9 / redis.conf /ホーム/ Redisの/スタンドアロン
設定ファイルを変更します。
我々は/home/redis/standalone/redis.conf
以下のように変更は以下のとおりです。
ポート番号:
ポート6379(デフォルト)
IPバインディング、サーバーのIPアドレスを変更します。
バインド172.31.87.1
バックアップファイルのディレクトリ:
DIR /ホーム/ Redisの/スタンドアロン/
コンフィギュレーション・デーモンの起動
はいデーモン化
プロセスIDファイルを変更します
pidファイル/home/redis/standalone/redis.pid
ログファイルのパスを変更します。
ログファイル「/home/redis/standalone/redis.log」
開いているデータベースの数を変更します。
データベース1
保存して終了
2.2.3.2スタンドアロンインストレーションチェック
Redisのユーザ認証を使用します
1. Redisのサービスを開始し、Redisのプロセスを表示
CD /ホーム/ Redisの/スタンドアロン
RedisのRedisのを開始するための設定ファイルを指定します。
Redisのサーバーredis.conf
ビューRedisのプロセス
ps -ef | grepのRedisのサーバー
2. Connectクライアントのテスト
接続Redisの
-H 172.22.1.155 -p-CLIのRedis 6379 (物理アドレスを生成する被験者)
格納された値
セットキー1値1
値
GETキー1
3.テストOK閉じるRedisのプロセス、Redisのクラスタは、別のノードを必要としません
pkillは-9のRedisサーバ
2.3クラスタのインストール
2.3.1 前提条件
- クラスタのインストールはredis3.0 +バージョンのサポートが必要です
- 各サーバー上の完全なスタンドアロンインストール
- redis3.xはルビークラスタ環境のサポートを必要とする、我々はルビー環境をインストールする必要があります
2.3.2 クラスタ構成ファイルの変更
Redisのユーザー切り替え
1. 2つのノードがクラスターのRedis展開する必要がホスト上のディレクトリを作成します。
ます。mkdir -p /ホーム/ Redisの/クラスタ/ 6379
ます。mkdir -p /ホーム/ Redisの/クラスタ/ 6479
ディレクトリ6379へのスタンドアロンノード・ディレクトリー2.コピー/ホーム/ Redisの/ redis.conf
3.編集したファイルだけをコピーredis.conf
4.編集プロファイルの内容
区別するために、ポート番号にプロセスIDファイルを変更します
pidファイルを変更します。
pidファイル/home/redis/cluster/6379/redis.pid
ログファイルの格納ディレクトリを変更します。
ログファイル「/home/redis/cluster/6379/redis.log」
クラスタを有効にします
クラスタ対応はい
クラスタ構成ファイルを指定します。
クラスタ設定ファイル「/home/redis/cluster/6379/nodes.conf」
クラスタ内のノードがハングアップし、あなたが通常の他のノードからのデータにアクセスすることができ、クラスタ全体に影響を与えません。
クラスタ必要-フルカバレッジなし
この構成では、バックグラウンドの開始を表し、
はいデーモン化
ポート番号:
ポート6379(デフォルト)
IPは、独自のサーバーのIPに変更され、結合します:
バインド172.31.87.1
バックアップファイルのディレクトリ:
DIR /ホーム/ Redisの/クラスタ/ 6379 /
開いているデータベースの数
データベース1
5.設定ファイルが変更された後、コピーredis.confはちょうど、各ノードのディレクトリにファイルを変更し、ディレクトリ内の各ノードの構成ファイルを変更、IPバインドポートとポート属性を属性
2.3.3 インストールルビー
- サーバーを選択し、クラスタのRedisを作成するにはルビーをインストール
- インストールするには、root権限
- サーバーにアップロードルビー-2.4.0.tar.gz、および抽出
- 解凍インストールパッケージルビー
- タールXFルビー-2.4.0-のtar.gz
- ./configureを実行し、インストールと構成の検出設置環境を実行します
- ./configureを
- コンパイルとインストール
コンパイル
作ります
インストール
make installを
2.3.4マウントのRedis-3.2.1.gem
Redisの-3.2.1.gemはマシンがルビーredis.3.2.1.gemが装備されているインストール
次の/ home / RedisのインストールディレクトリにアップロードRedisの-3.2.1.gem
宝石は--localのRedis-3.2.1.gemをインストール
2.3.5 各ノードが開始
これは、3台のサーバ上の6つのノードを開始しました。
Redisのサーバー/home/redis/cluster/6379/redis.conf
Redisのサーバー/home/redis/cluster/6479/redis.conf
3台のサーバの後のノードをチェックするための6つのノードがオンになって、各サーバーは、2つのノードが表示されます
ps -ef | grepのRedisのサーバー
2.3.6作成クラスタを構築します
ルビーサーバーのインストールの作成時にコマンドを実行し、次のコマンドを作成します。
Redisの-trib.rb 1 172.21.26.5:6379 --replicas作成
172.21.26.5:6479 172.21.26.6:6379 172.21.26.6:6479
172.21.26.7:6379 172.21.26.7:6479
クラスタの作成を開始し、[はいyesまたはnoの入力時に入力されます
プロンプトが表示され、次の図を参照してください、成功したのクラスタを作成します。
2.4 Redisのクラスターの最適化
2.4.1 maxmemoryオプション
Redisのマシンを聞かせてはいけないところ、総メモリの3/5よりも実際の物理メモリの使用状況。
物理メモリの40%の標準を設定するためのmaxmemoryオプションで設定redis.conf。
両方のノード20%から主点は、それぞれ単一のサーバ上に配置されている場合。次のオプション:
(本番環境200Gメモリに割り当てられ、いずれか)
maxmemory 5100000000
メモリ除去機構の設定
allkeys-LRUは:最近、まれに新しいデータを保存するために使用されるキーの優先順位を削除します
maxmemoryポリシーallkeys、LRU
2.4.2オープンTCP接続の高速リカバリ
オープンTCP接続をTIME-WAITソケットの急速な回復、TCPコネクションの急速な放出に貢献
/etc/sysctl.confファイルを変更します
次のパラメータを変更し、このパラメータを追加してくださいされていない場合
net.ipv4.tcp_tw_recycle = 1
2.5デプロイメントの確認
2.5.1データストレージの検証
Redisの接続、設定やデータを格納および取得するために慣れ、ノートストレージノード情報
接続Redisの:
Redisの-CLI -c -h 172.22.1.156(実際の製造年月日のアドレス)
格納された値
設定したキー値
値
キーを取得
三つの主なノードが成功したクラスタを作成するために、対応する命令を持っています