複数のサーバ上でRedisのデータ・プライマリ・セカンダリ・レプリケーションを簡単に実現

5471 ワード

[
Webサイト構築]Redisのデータマスターコピーを複数のサーバで簡単に実現
Redisの主従レプリケーション機能は非常に強力で、1つのm as terは複数のslaveを持つことができ、1つのslaveは複数のslaveを持つことができ、このようにして、強力なマルチレベルサーバクラスタアーキテクチャを形成した.次に、複数のサーバでRedisデータのプライマリ・セカンダリ・レプリケーションを行う方法を示します.ここで私は2台のサーバーがあると仮定して、1台はWindowsオペレーティングシステム(ローカルエリアネットワークIP:192.168.3.82)、1台はLinuxオペレーティングシステム(ローカルエリアネットワークIP:192.168.3.90)で、2つのオペレーティングシステムにredisをインストールして、Windowsオペレーティングシステムはcygwinツールを使ってインストールして、コマンドは:
 
  1 tar   xzf redis-2.2.2. tar .gz 2 cd   redis-2.2.2 3 make
「make test」コマンドでインストールに成功したかどうかを判断できます.
 
ここで私は1つのmasterと2つのslave(masterはWindowsの下で、1つのslaveはWindowsの下で、1つのslaveはLinuxの下で)、基本的な流れは:
 
1.Windowsサーバ上に2つのディレクトリ、Demo 1、Demo 2を作成します.ここでDemo 1はMasterサービスを保存し、Demo 2はSlaveサービスを保存します.
Masterサービスでのプロファイルの変更:
  1 bind 192.168.3.82
 
Slaveサービスでのプロファイルの変更:
  1 port 6381( ) 2 bind 192.168.3.82 3 slaveof 192.168.3.82 6379 ( master Host Port)
 
2.Linuxサーバ上にディレクトリを作成し、Demo、DemoはSlaveサービスを保存し、サービス内のプロファイルを変更する.
  1 bind 192.168.3.90 2 slaveof 192.168.3.82 6379( master Host Port)
 
これですべての構成が完了します.
 
3.コマンドにより、この3つのサービスを実行します.
  1 ./redis-server redis.conf
をクリックしてredisサービスを開始します.
 
マスターを起動してslaveを起動すると、slaveに次のことがわかります.
SYNCリクエストが送信され、Masterから対応し、自動再接続がサポートされます.すなわち、masterがオフラインの場合、リクエストが待機している状態になります.
マスターには
Slaveの応答を受け入れることができ、永続化操作を開始し、SlaveがMasterに接続するたびにディスクを永続化することを示します.
 
4.サービススタックに使用するクライアントプログラムの作成を開始します.Redis.dllの.NETコンポーネント:
 
  01 using   ServiceStack.Redis; 02
  03 static   void   Main( string [] args) 04 { 05      IRedisClientFactory factory =  new   RedisCacheClientFactory(); 06      IRedisClient client = factory.CreateRedisClient( "192.168.3.82" , 6379); 07
  08      client.Set< string >( "username" "leepy" ); 09
  10      string   username = client.Get< string >( "username" ); 11
  12      client.Save(); 13
  14      Console.WriteLine( "username: {0}" , username); 15
  16      Console.ReadLine(); 17 }</ string ></ string >
実行結果:
データSetの場合はメモリにデータを保存し、セーブメソッドを呼び出すとディスクにデータを保存します.
3つのサービスディレクトリにdumpが表示されます.rdbは、MasterのファイルがSlaveに同期したことを示しています.
UEエディタでファイルを開いて表示するには、次の手順に従います.
Redisソースコードから,rdbファイルはlzf圧縮アルゴリズムを用いて実現され,デフォルトlzf圧縮アルゴリズムはオンであることが分かった.
 
これにより、SlaveディスクWebのデータを他のクライアントプログラムまたはデータベース#データベース#プラットフォームで読み取ることができ、本当に読み書き分離の目的を達成することができます.