分散キャッシュデータベース
シングルノード・インストール
-
-
CDの/opt/sxt/redis-3.2.9
-
yumのgccのTCLをインストール-y(インストールに依存)
-
(/opt/sxt/redis-3.2.9ディレクトリに)作ります
-
make installを(ディレクトリ同上)
-
vimのredis.conf:設定ファイルを変更します。
デーモン化:はい(バックグラウンド)
バインド127.0.0.1の192.168.163.201(ネイティブの設定IP)
-
コンフィギュレーションを起動し、指定:Redisのサーバー/opt/sxt/redis-3.2.9/redis.conf
-
ローカル起動クライアントのRedis-CLI
-
クローズ処理方法
PS -ef | grepをのRedisのはRedisのは、プロセスIDを探します
プロセスのkillを殺す-9 XXX
コマンドライン
図書館やキー操作
文字列操作
リスト操作
集合演算
ソートセットの操作
ハッシュ操作
マスターノード操作から
一時的な操作ノードの場合は、プログラムの実行時に使用されます
-
一時的なコマンドであるためにノードから外部ノード:slaveof 192.168.163.201 6379
マスタノードに接続した後、元のデータが空である場合、マスターノードは、データを同期させます
-
ノード配下のコマンドからの一時的なリリース:slaveof誰(同期化されたデータを一掃しないでください)
持久化
RDB
-
ハードディスクdump.rdbにメモリのスナップショットを保存します(デフォルトのディレクトリは、設定ファイルに保存されています)
-
トリガー:1ワットデータの60代の中、300秒10のデータの断片; 900S 1内のデータの(設定ファイル属性を保存します)
-
通常のシャットダウンは、RDBをトリガした後、起動時にメモリにスナップショットを復元することができます
-
閉じるRDB
一時的な閉鎖RDB:コマンドの設定は、「」セーブセット
永久に閉じEDB:プロファイルは、「」設定の保存他のコメントを保存
-
ワンショット
コマンドサヴァ、手動トリガRDBは、実行をブロックします
bgsave、手動トリガRDB、背景、RDBをトリガしません。
-
これは、データの損失を引き起こす可能性があり
AOF
-
デフォルトのディレクトリプロファイルに保存保存操作ログ(AOFファイルappendonly.aof)、
-
Redisの優先順位はAOF、つまり、データを回復(後RDB優先)実行ログファイルを書き換えます
-
ログを書き換え、データ損失の危険性があります
-
redis.confパラメータの設定
-
AOFスタートを設定します。appendonlyはい
永続AOF優先利用(後RDBの優先順位)
-
appendfsync戦略
-
常に:データが失われない、実時間の節約、効率が(永続的なデータストレージの完全な応答をログインした後に)悪いです
-
everysec:1sが、デフォルト(永続ログイン待つ必要はありませんが)ログを保存します
-
いいえ:オペレーティングシステムにログデータは、データの不安に対処するために、最速
-
-
リライト・メカニズム
ログファイルの圧縮を解析する(無効なデータを削除する)、ログファイルをマージ
設定パラメータ
書き換えは、データを挿入サポートしていません:無appendfsyncオン書き換えなし
拡張倍数:自動AOF-書き換えパーセントのデフォルト100(ダブル)(参照メモリ空間の大きさが広がり、複製、空間を避けるために、最大ログファイルの拡張子に達します)
サイズ参照ログイン:自動AOF書き換え分サイズの64Mのデフォルト(ログファイルのサイズの初期上限を、ログファイルのサイズが基準サイズに達すると、ログが書き換え開始されました)
-
-
空のデータflushall。あなたがデータを達成するために回復する必要がある場合にのみファイルAOF変更することができます
マスタースレーブのレプリケーション
クライアントマスターノードは、ノードからのデータの同期を次に読み取りおよび書き込み操作を実行し、そして。通常唯一のノードからの読み出し動作を行います。
セパレート読み、マスターコピーから書きます。
背景データの同期:非ブロッキング非同期複製が、1Sを一度実行(同期失敗、データ書かれた損失の少ないです)
クラスタ:また、ノードから自分自身のスレーブノードを作成することができます
マスターノード構成から
-
コマンドを使用してプロジェクトディレクトリをコピーします。
CDは/ opt / SXT
SCP -rのRedis-3.2.9ノード2: `pwd`は
SCP -rのRedis-3.2.9は、ノード3:` pwd`は
CDを/ usr / local / binには
SCP *ノード2: `pwd`は
SCP *ノード3:` pwd`は -
設定ファイルを変更します。
-
ローカルIPを設定します
バインド127.0.0.1 192.168.163.202
-
ノード(デフォルトポート6379)からのIP及びポート構成マスタ
slaveof 192.168.163.201 6379
-
-
Redisのアカウントのパスワード
-
マスターノードがrequirepass設定されている<パスワード>
-
ノード構成masterauthから<パスワード>
-
-
マスタノードは、マスタノードの発効書き込み動作が実行される前に条件を満たすために
最小からスレーブ・ノードツー分の書き込み<スレーブの数>
最大遅延スレーブ・最大-最小LAG <秒数>
-
ノードから(3同時にノードを実行する)マスタを開始
Redisのサーバーredis.conf
Redisの-CLI
センチネルセンチネル
リアルタイム監視マスタースレーブノードプロンプト、失敗、自動フェイルオーバー。
主スイッチングマイグレーション自動障害をセンチネルから永久的な関係である構成情報から、各ノードにおける主な構成ファイルを変更します
元のホストを削除した後、再びオンラインに変更センチネルは、スレーブノードを構成し、それがスレーブノードになり
Sentinelは、投票裁判官によってクラスタノードをオフラインです。
設定センチネル
-
プロフィールを入力してください
Vimの/opt/sxt/redis-3.2.9/sentinel.conf
-
レビュー:メインクラスタ名から、マスターノードの現在のIPアドレスとポート;破る投票(あなたが複数の小さなクラスターを構成することができます)
センチネルモニタmymaster 192.168.78.101 6379 2
マスターノードを介して、センチネル節は、他のセンチネルから取得します
-
変更は、判定時間を落とし、デフォルトの30代は、センチネル確認を落としました
-
センチネルダウン後のミリ秒30000 mymaster
-
フェイルオーバー時間、残業移行が失敗したと思います
センチネルフェイルオーバー・タイムアウトmymaster 180000
-
場合は、フェイルオーバー、マルチノード、いくつかの新しいマスターデータ同期
mymasterセンチネルパラレル同期1
-
閉じる保護モード
プロテクトモードなし
ない変更したコンフィギュレーションファイルを使用して、独自の構成ファイルの使用、
センチネルモニタmymaster 192.168.163.201 6379 2
センチネルダウン後のミリ秒mymaster 30000
センチネルフェイルオーバータイムアウトmymaster 180000
センチネルパラレル同期mymaster 1
プロテクトモードなし -
-
他のノードにコンフィギュレーションファイルをコピーします。
SCP sentinel.confノード2:/opt/sxt/redis-3.2.9
SCP sentinel.confノード3:/opt/sxt/redis-3.2.9
-
Redisのセンチネル(Redisのディレクトリ)で開始
Redisのサーバーredis.conf
Redisの-センチネルsentinel.conf
ログはセンチネルセンチネルノード接続情報ノードのRedisで見ることができます
分散クラスタ
3バージョンからサポートするために始めました。
原理:鍵算出撮影タイプハッシュ、指定された値(16384)のハッシュ値Iの演算、溝に16384ハッシュスロット、異なるハッシュデータを取得します。分散クラスタの各ノードの分散ハッシュスロット。
データハッシュスロットは、バックグラウンド内のノード間で移行することができ、それはノードブロックを引き起こしません。
マイグレーションは、データが自動的に割り当てられ、制御ノード上でオフラインハッシュスロットを実装することができます。
分散は、マスタノードからコピーをサポートしています。
データ整合性の問題
-
同期の損失、マスタノードからのデータ同期、非ブロッキング複製(同期失敗、少量のデータが損失書き込まれている場合)、LSは一度行います
-
クラスタ分割、及び少なくとも1つのクライアントと(少数)の少数を含むマスターノードを含む、単離されたインスタンスです。
再接続した後、いくつかのデータを失う同期ノードを切り離します。
クラスタソリューション部門:自己のデータの損失を減らすこと、少数党ノード、自動ログオフとして自分自身を見つけます
分散ビルド
6つのノード構成ファイルを起動設定6プロファイル、
マシン上の別のポートは、複数のノードのRedisのを実行するために存在するように設定
-
プロフィールredis.conf
-
オープンポート:ポート7000
-
クラスタが用意されています:クラスタ対応はい
-
クラスタ構成:クラスタ設定ファイルのnodes.conf
-
ノードタイムアウト:クラスタ・ノード・タイムアウト5000
-
永続AOF:appendonlyはい
-
バックグラウンド・プロセス:はいデーモン
-
保護モードは何のプロテクトモードをオフにしません
ポート7001
クラスタ対応はい
クラスタ設定ファイルのnodes.confの
クラスタ・ノード・タイムアウト5000
appendonlyはい
はいデーモン化
プロテクトモードなし -
-
そのように異なるフォルダに異なるプロファイル、別のディレクトリへの永続的なデータ
例えば:7000のフォルダを作成しRedisのクラスタディレクトリ内のフォルダ、およびフォルダ7001を作成します。
7000ディレクトリ配置7000ポート・コンフィギュレーション・ファイルには、コンフィギュレーション・ファイル7001ポートを配置するディレクトリ7001
この構成では、3台のマシン、各ポート7001とポート7000は、各機械Redisの上の2つのノードを提供しました
-
各ノードのRedisを開始
-
依存関係のルビーのインストール(単一ノードを実行するために)
yumのルビーをインストール
yumをRubyGemsのインストール
インストール宝石のRedis-3.2.1.gemローカルにインストールのRedis-3.2.1.gem、ファイルのパスに宝石のコマンド
-
のクラスター
レプリカのパラメータ:
これは、マスタノードから割り当てられたノード(第3主3から)、そのノード6を表します
これは、(マスタ4から2)ノードから二割り当てマスタノード、すなわちノード6を表します
最後に、各ノードのIPアドレスとポートを接続
CDの/opt/sxt/redis-3.2.9/srcは
1 192.168.163.201:7000 192.168.163.201:7001 192.168.163.202:7000 192.168.163.202:7001 192.168.163.203:7000 --replicas作成./redis-trib.rb 192.168.163.203:7001 -
クラスタの接続
Redisの-CLI 7000 -C -P(指定された接続ポート7000、自動切替ノード可能)
Redisの-CLI -hノード1 -p 7000 -C(自動切替ノード可能に指定されたホスト+ IP)
-
閉じるクラスタ
クライアントは、shutdownコマンドを実行します
閉じる]コマンドノードまたはliunx:Redisの-CLI -p 7001シャットダウン
的RedisのAPI