EDITORIAL言葉
いくつかの簡単なインストールと操作Redisの5つの基本的なデータ型についての話では、この章では、それは一般的ではないかもしれないが、Redisのいくつかの追加機能を見ることが主であるが、それでも知っておく必要があります。運用・保守人員の面で私たちのために、多分私達は、長年にわたって仕事に使用されていない、のようなこれらの事の知識を展開していますが、運用・保守の発展の方向に向かって徐々に開発する必要がある場合、これらの事はあなたの問題解決になります別のプログラム。もう一つのアイデア。
パブリッシュおよびサブスクライブ
Redisのは、2つの方法、メッセージキュー、パブリッシュおよびサブスクライブがあることを発表しました。
メッセージキューの場合は、自分の役割が含まれています:プロデューサー - >メッセージキュー - >消費者
生産者は、消費者は、キューから読み続け、その後、タスクを実行し、タスクがキューに処理されると言います。利点は、カップリング溶液は、簡単にスケーリングすることです。
我々はFMを放送することができるようパブリケーション・サブスクリプションについては、我々は唯一のチャンネルを持っている、あなたは、このプロセスに同調し、ラジオを聴くことができ、サブスクリプション・チャネルです。
そして、同様の放送の原理は、加入者が指定したチャンネルに最初のオープンチャンネルに必要な、その後発表された別のウィンドウを起動します。
fm110 SUBSCRIBE
結果が示されています。
この時点で、別のウィンドウには、fm110チャネルのニュースリリースを開始しました:
fm110 PUBLISH " こんにちは"
結果が示されています。
この時点で、加入者のウィンドウビュー:
それは少しQQグループチャットのようなものだ、唯一のメイングループを可能に話し、他が受信する複数の人かもしれません。
#購読解除は、あなたがチャンネルを指定しない場合、すべてのチャンネルがキャンセルされます、チャネルを指定したサブスクリプション UNSUBSCRIBE [チャンネル...] #は、それはそれと一致するよう、*印のように、与えられたパターンに一致する1つまたは複数のチャネルにサブスクライブ*チャンネル(it.news、it.blogなど)の先頭 PSUBSCRIBEパターン[パターン...] #は何のパラメータはすべてのルールから退会しません場合は、指定されたルールを解除 PUNSUBSCRIBE [パターン[パターン...]] #見ます状態配信システムに登録 PubSubのサブコマンド[引数[引数...] ]
もちろん、Redisのは、パブリッシュ・サブスクライブのメッセージ・キューは、あなたが本当にそのようなコンテンツが必要な場合は、あなたがRabbitMQの、カフカなどを選択することができ、実際には非常に粗いです。
トランザクション処理
あなたがコミットしていない場合は、ブラシがディスクに書き込まれる変更されませんが、MySQLではトランザクションを開始知って、Redisの中にそのような操作もあります。
MySQLではトランザクションはRedisのマルチを使用して、トランザクションを開始するか、起動を開始します。
ロールバックをキャンセルし、ロールバック、Redisの利用廃棄を使用することができますキャンセルMySQLでは、ロールバック、運用・保守のRedisが実行されていない呼び出すことはありません。
MySQLではコミットファイリング、Redisのは、execに使用されています。
Redisのは楽観的ロックで使用されている、あなたは、オンラインでシミュレートすることにより、テストにチケットを購入することができます:
ウィンドウ内の1つの実行:
127.0.0.1:6379>セットチケット1 OK 127.0.0.1:6379> 時計チケット OK 127.0.0.1:6379> マルチ OK 127.0.0.1:6379> セットチケット0 QUEUED
一時的にそれを実行して、実行するために、ウィンドウ2を取っ:
127.0.0.1:6379> チケット取得 " 1 " 127.0.0.1:6379> マルチ OK 127.0.0.1:6379> セットチケット0 QUEUED 127.0.0.1:6379> execの 1を)OK
この時点で、1を実行するためのウィンドウに移動します。
127.0.0.1:6379> EXEC (ゼロ)
そして、私はチケットが他の人に買収された発見しました!どの役割モニター(またはそれ以上)を見ているキー、この(またはこれらの)場合は、別のトランザクションの実行前にキーコマンドを変更され、トランザクションが中断されます。
その他のグローバルオペレーション
次のように一般的に使用されるコマンドは次のとおりです。
#表示接続されたクライアント CLIENT LISTの #キルクライアント クライアントKILL上記IDの上に10 位、すべてのシステム構成取得 CONFIGのGETを* #マッチング構成入手 CONFIGのGETログを* #オンラインの構成変更CONFIG HelloWorldのrequirepass SET #ログインのHelloWorld AUTH #が変更されますがredis.conf設定書込みCONFIG REWRITE #の表示現在のライブラリキー番号DBSIZEの#のRedisのを印刷するコマンドを受信MONITORの#をすべてのキー現在のライブラリを削除するにはFLUSHDBの#すべてのライブラリに削除キーflushAll #現在の時刻の時間#のマニュアルが持続SAVE #非同期実行をAOF(AppendOnlyファイル)ファイル上書き操作 BGREWRITEAOF #ディスクに保存した背景非同期データで、現在のデータベース BGSAVE
結果は以下の通りであります:
127.0.0.1:6379> クライアントリストの ID = 5 ADDR = 127.0.0.1:48567 FD = 8名=年齢= 15091アイドル= 0フラグ= N DB = 0サブ= 0 PSUB = 0マルチ= -1 qbuf = 0 qbuf-フリー= 32768 OBL = 0 OLL = 0 OMEM = 0イベント= R CMD = クライアント ID = 8 ADDR = 127.0.0.1:48573 FD = 9名=年齢= 660アイドル= 600のフラグ= N DB = 0サブ= 0 PSUB = 0マルチ= -1 qbuf = 0 qbuf無= 0 OBL = 0 OLL = 0 OMEM = 0イベント= R CMD = EXEC ID = 10 ADDR = 127.0.0.1:48577 FD = 10名=年齢= 14アイドル= 14のフラグ= N DB = 0サブ= 0 PSUB = 0マルチ= -1 qbuf = 0 qbuf無= 0 OBL = 0 OLL = 0 OMEM = 0イベント= R CMD = キー 127.0.0.1:6379>クライアントKILL番号10 (整数) 1 127.0.0.1:6379> CONFIG GETログ* 1)" ログファイル" 2)」/data/services/redis/logs/redis-6379.log " 3)" ログレベル" 4)" 通知" 127.0.0.1:6379> CONFIG SET requirepassのHelloWorld OK 127.0.0.1:6379>キー* (エラー)NOAUTH認証が必要。 127.0.0.1:6379> HelloWorldのAUTH OK 127.0.0.1:6379> CONFIG GET requirepass 1)" requirepass " 2)" HelloWorldの" 127.0.0.1:6379> CONFIG REWRITE OK 127.0.0.1:6379> DBSIZE (整数) 1 127.0 .0.1:6379>FLUSHDB OK 127.0.0.1:6379> FLUSHALL OK 127.0.0.1:6379> TIME 1)" 1573022355 " 2)" 256540 " 127.0.0.1:6379> MONITOR OK 1573022218.974627 [0 127.0.0.1:48573] " AUTH " " HelloWorldの" 1573022226.451991 [ 0 127.0.0.1:48573] " キー" " * " 1573022268.293698 [0 127.0.0.1:48573] " FLUSHDB " 1573022292.090727 [0 127.0.0.1:48573] " FLUSHALL " 1573022355。256531 [0 127.0.0.1:48573]" TIME "
これは、我々は実際には本当の意志多くはないと、次にくるものが、我々は物事の運用・保守の詳細を気にするもので、同程度の簡単なコマンドを学びました!それは設計およびチューニングのアーキテクチャです。