高並行性の原則を達成するために、マスター・スレーブ・アーキテクチャ - ()学習のRedis

いくつかの原則:マスター・スレーブレプリケーションの原則、センチネル原則、クラスタモデルが機能する
のRedisは高い並列性を実現するには、主に依存マスタスレーブアーキテクチャ、マスター・マルチスレーブ。可用性へのマスターから、我々は追加する必要が警備員を実現することができる、任意のインスタンスダウン、切り替えを行うことができます。並行性の高い可用性た後に、ビッグデータに対応するようにしたいのRedisクラスター
:センチネルセンチネルクラスタ
のRedisクラスター:Redisのクラスター

まず、メインのプレゼンテーションでは、理論からコピー


1.1、マスター・スレーブ複製原理
(1)マスタ-スレーブ構造:マスターとスレーブ(マスタスレーブ)アーキテクチャ、マスターマルチスレーブ、マスタ・データベースは、他にデータを書き込み、コピーを担当して  スレーブ  ノード、データベースからの読み出しは、データベース達成する責任があるリードを書き込み分離サポート高並行性の読み取りのこの水平展開。

(注:いない複数のマルチマスタからのみからマルチマスタ内側Redisの)
ここに画像を挿入説明
マスタコピーコア機構(2)から(レプリケーションをRedisの)
使用して非同期では、スレーブノードにデータをコピーマスターノードから、複数のノードから構成されていてもよいです、ノードその後、なり他のノードにも接続することができ、それは、古いデータセットとサービスを提供し、それがコピーされるとき、それは自分自身でクエリ操作を中断されませんマスターノードから中断されることはありません、新しいデータセットをロードするために古いデータ・セットを削除した後コピー外国サービスの中断。

マスタコピーアプリケーションシナリオから:クラスタ、別々の読み取りおよび書き込み、ログのバックアップ、高可用性
のマスターコピーのコア原理から(3)
プライマリサーバと、サーバからのサブサーバ、それが送信するときのノードから出発したときに  PSYNC  コマンドをマスターノードに、

これは、接続が完全再同期フルボリュームコピーをトリガーするのが初めての場合、クライアントからのすべての書き込みコマンドがメモリにキャッシュ受けながら、今回のマスターは、スナップショットファイルRDBを生成するために、バックグラウンドスレッドを開始します。

完全マスターノードがスレーブに送信しますRDBを生成し、スレーブはなり最初のローカルディスクに書き込まれた後、メモリにローカルディスクからロードされ、その後、スレーブ・マスター・メモリキャッシュへの書き込みコマンド、スレーブがデータを同期します。

(注:ノードからのみ欠落データをコピーするために後部主要なノードに接続され、自動的にノードから切断し再接続しますメインネットワーク・ノードに障害がある場合)
ここに画像を挿入説明

詳細なプロセス

データベースからの開始時(1)、マスタデータベースが送信する同期コマンドを、 

(2)マスターデータベース同期コマンドを受信した後、バックグラウンドでのスナップショットは、(動作がRDBを実行)を開始し、受信したコマンドが、スナップショット中に保存されて保存します。

スナップショットが完了すると(3)は、スナップショットファイルをRedisのデータベースからキャッシュにすべてのコマンドを送ります。

データベースから受信した(4)、スナップショットがロードし、受信したファイルのキャッシュ・コマンドを実行します。

1.2からコピーされた主な質問 


(1)HTTP:

マスターノードは、メモリ内のバックログを維持し、マスタとスレーブは、オフセットのコピーとメイン実行IDを保持し、オフセットの最後のコピーからネットワークスレーブマスターコピーオフ許可すれば、バックログに保存され、そうでない場合はオフセットオフセット量は、完全なコピー行うことである見つける
(2)重要なプロセスを期限切れ:

スレーブがちょうどキーのうち、期限切れのマスターキーであれば、あるいはLRUで、期限切れのマスターキーを待ち、キーを期限切れにしない、それがスレーブにdelコマンドをシミュレートします。


1.3、複製の3種類


(1)コピーの合計量:

60年代よりも、そのノードが実行に失敗したキャッシュメモリに書き込みコマンドから思うだろうより多くのためのRDBのコピーは、マスターノードは、ノードから、RDBを生成した場合、マスター実行bgsaveは、ローカルにして、ノードから送信されたスナップショットファイルを生成するRDBノードからRDB、コピーに、新しい書き込みコマンドを保存した後、ノードは、古いデータは、メモリRDBにロードされ、データの古いバージョンに基づいてサービスを提供している空RDBから受け取る
(2)インクリメンタルコピー:

スレーブ再接続マスタは、マスタがスレーブノードに送信する直接そのバックログからのデータの部分的な損失を得るために、場合コピー処理中断ネットワークの全額は、増分レプリケーションがトリガされます。
マスターノードから、デフォルトでは10秒ごとに、お互いにマスターノードをハートビートメッセージを送信するノードからのハートビートを送信することは、ハートビートごとに1秒送信
:(3)非同期レプリケーションを

各マスタ書き込みコマンドを受信した後、第一内部書込データは、非同期スレーブノードを送信します

1.4、マスタースレーブのレプリケーションを設定するには:サーバーから構成です

修改从Redis从配置文件:
修改slave从redis中的 redis.conf文件
slaveof 192.168.33.130 6379  
masterauth 123456--- 主redis服务器配置了密码,则需要配置
一主多从如何实现 

 

二、LinuxはRedisの下にインストール

下载Redis安装包
wget http://download.redis.io/releases/redis-3.2.9.tar.gz
解压Redis安装包
tar -zxvf redis-3.2.9.tar.gz
安装
cd redis-3.2.9
Make
Cd src
make install PREFIX=/usr/local/redis
移动配置文件到安装目录下
cd ../
mkdir /usr/local/redis/etc
mv redis.conf /usr/local/redis/etc

配置redis为后台启动
vi /usr/local/redis/etc/redis.conf //将daemonize no 改成daemonize yes
vi /usr/local/redis/etc/redis.conf // requirepass 123
开启redis
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 

连接Redis客户端

./redis-cli -h 127.0.0.1 -p 6379 -a "123456" 
PING 结果表示成功


关闭防火墙


//临时关闭
systemctl stop firewalld
//禁止开机启动
systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.


停止Redis服务
./redis-cli -h 127.0.0.1 -p 6379 -a "123456"  shutdown
修改redis.conf
注释掉
#bind 127.0.0.1 开启外网访问

 

公開された52元の記事 ウォンの賞賛116 ・は 50000 +を見て

おすすめ

転載: blog.csdn.net/RuiKe1400360107/article/details/103649957