Redisのニュースリリースモード
生産と消費のモデル
Redisののニュースリリースは、通常は2つのモードがあります。
1 :キューモード(キューイング)
2 :公開- モデルをサブスクライブ(パブリッシュ・サブスクライブ)
タスクキューは:名前が示すように、することがある「メッセージキューを提供します。」タスクキューと対話するエンティティは、1つのプロデューサー(で、2種類がありプロデューサー、他の消費者(である)消費者)。生産者は、タスクキューにタスクを処理する必要があります、そして消費者は、独立した実行タスクからタスク情報を読み続けます。
タスクキューの利点:
疎結合。
生産者と消費者は、単にコードで書かれた、合意されたタスクの記述形式に従ってください。
拡大しやすいです。
マルチ・コンシューマ・モデルは、消費者がそれによって、単一のサーバの負荷を低減すること、異なる複数のサーバに分散させることができます。
実際には、からパブリッシュ・サブスクライブ・ビューのメカニズム、それはより多くの放送システムのように、複数ある加入者が複数に加入することができますチャンネル、複数の出版社はより行くことができるチャンネルがメッセージを投稿しました。理解することは簡単なことができます:
加入者:ラジオ、キュー内の複数のチャネルと、表示モードを受信することができます。
出版社:ラジオ、別のに行くことができるFMのメッセージチャンネル
チャンネル:異なる周波数のFMのチャンネル
-------------------------------------------------- -------------------------------------------------- ----------------------------
(1) 出版社、複数の加入者モデル
以下に示すように、メッセージまたはメッセージ・キュー・パイプラインとして使用することができます。
主な用途:お知らせ、発表
(2) 複数のパブリッシャ、サブスクライバモデル
あなたがされてもよい PubSubのは無関係にHTTPの各アプリケーションへのインターフェースをパブリッシャにチャネル、送信メッセージ加入者のようなデータベース、ディスプレイ等を書き込むように、メッセージの終わりを受信した後に、対応するサービスロジックを実行します。
主な用途:リスト、開票。
(3) 複数の出版社、複数のサブスクライバモデル
インクレディブル名付け、異なることがあるチャネル異なるによって送信メッセージサブスクライバ受信。
主な用途:グループチャット、チャット。
公開と実践を購読します:
チャンネルMSGを公開
情報メッセージ指定されたチャンネルに送信チャネル
SUBSCRIBEチャンネル[チャンネル...]
チャンネルを購読するには、同時に複数のチャンネルを購読することができます
UNSUBSCRIBE [チャンネル...]
指定されたチャンネルを解除、あなたがチャンネルを指定しない場合、すべてのチャンネルが解除されます
PSUBSCRIBEパターン[パターン...]
1つ以上のチャネルにサブスクライブは、各モードの特定のパターンに一致 * などの記号として*それマッチが なければならないことから始まるチャネル(it.news 、it.blog 、it.tweets など)、ニュース。 * すべてに一致する まで。ニュースチャンネルの始まり(news.it 、news.global.today など)など
PUNSUBSCRIBE [パターン[パターン...]]
指定されたルールを解除、何のパラメータはすべてのルールを退会しません場合
PubSubのサブコマンド[引数[引数...]]
ビューのサブスクリプションとパブリッシングシステムステータス
注意:クライアントが加入したときに使用して、メッセージキューのサブスクリプションモデルを達成するために発行するチャネルをだけではなくキャッシュ必読送信する前に、ニュースチャンネルへのフォローアップリリースを受け取った後、プロバイダと消費者を同時にオンライン。
例を公開する購読:
ウィンドウ 1 : チャンネルzhangsanを購読
127.0.0.1:6379はzhangsan SUBSCRIBE>
ウィンドウ 2 : zhangsanチャンネルにメッセージを送って、この時間ウィンドウは、リアルタイムでメッセージが表示さ
127.0.0.1:6379> zhangsanを公開 "ジン天ジェンkaixin!"
マルチチャンネルのサブスクリプション:
ウィンドウ 1 : 等zhangsan01 zhangsan02など、複数のzhangsan *チャンネルにサブスクライブ
127.0.0.1:6379> PSUBSCRIBEのzhangsan *
ウィンドウ 2 : *チャンネルをzhangsanにメッセージを送信する、この時間ウィンドウは、リアルタイムでメッセージが表示さ
127.0.0.1:6379> PUBLISH zhangsan01 "金田zhennanshou"
127.0.0.1:6379> PUBLISH zhangsan02 "金田zhennanshou"
サブスクリプションのステータスを入力するには、クライアントのサブスクリプションのコマンドを実行した後にのみ受け取ることができ SUBSCRIBE 、PSUBSCRIBE 、UNSUBSCRIBE 、PUNSUBSCRIBE 4つのコマンド。ので、オープンサブスクリプションクライアントは、前のチャンネルにメッセージを受信できないのRedisは、メッセージが持続公開されません。(そのような多くのプロやメッセージ・キューイング・システムは、カフカが住んでいた、RocketMQをと比較して)、Redisのは、このようなメッセージやバックトラックの蓄積を達成することができないよう、やや粗購読公開します。現在のシナリオは、良い選択となる場合でも、十分に簡単に勝ち、これらの欠点を許容することができます。
-------- ------ Redisの情勢
Redisのトランザクションでリレーショナルデータベーストランザクションで同様の概念であるが、違いがあります。失敗したトランザクションの実行の背後にあるリレーショナルデータベースのSQL 文が実行されず、Redisのコマンドでは失敗し、コマンドの残りの部分は正常に実行されます。
Redisの取引では、使用して開かれたマルチに相当、\スタートトランザクションを開始、Execは、トランザクションをコミット破棄queueコマンド(非ロールバック)をキャンセルします。
トランザクション機能(オンするとマルチ)
マルチ
Command1を
コマンド2
COMMAND3
Command4
4 グループとしての文では、実際に実行しなかったが、同じキューに置かれています。
場合は、今回の実装で廃棄、破棄し、代わりにロールバックを行うので、すべてのコマンドをキューに入れます。
EXEC
実行する場合のexec 全体の、すべての操作のためのコラム、いずれかの全部成功か失敗を
----------
127.0.0.1:6379> ABを設定
OK
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> ABを設定
QUEUED
127.0.0.1:6379>セットCD
QUEUED
127.0.0.1:6379>幹部
1)OK
2)OK
Redisのロック機構での取引:
例:私はチケットをよ
チケット-1、お金-100
チケットはわずかである 1 張、私の中にあれば、複数の後、と幹部は以前に、他の人が買ったチケットは--- つまり、チケットはなり0 。
どのように私はこのようなシナリオを観察することができ、かつ提出しないだろう
悲観的な考え:
世界は危険に満ちている、きっと誰かが私をつかむ、にチケットロック、唯一私が動作することができます。[ 悲観的ロック]
楽観思考:
ない人々が私をつかむこと、そのため、私は注意を払う必要があり、
- 変更するものがあるんチケットそれに値を[ 楽観的ロック]
Redisのの取引は、楽観的ロックを有効にする、それが監視するための唯一の責任があるキーを変更されていません。
チケットを公開
セットチケット1
ウィンドウ 1 :最初の観測チケット値、およびその後、通常の購入この時点であれば、チケットがある0 、それは失敗、または成功を促すメッセージが表示されます
チケットを見ます
マルチ
セットチケット0 1 ----> 0
ウィンドウ 2 :直接買ったチケットへ。
マルチ
セットチケット0
EXEC
ウィンドウ 1 :
Execの
--------------------------------
Redisの共通管理コマンド
インフォ
Clinetリスト
クライアントキルIP:ポート
コンフィグ取得*
CONFIG RESETSTATは、統計をリセット
CONFIGのGET / SET 動的変更
DBSIZE
FLUSHALL すべてのデータを消去し
1を選択します
FLUSHDBは、現在のライブラリをクリア
MONITORの監視、リアルタイムのコマンド
SHUTDOWNは、サーバを閉じ
データベースをシャットダウンします。
Redisの-CLI -aルートのシャットダウン
------- --- 拡張遅いスロークエリログ---------------------------
スロークエリログ
スローログがあるRedisのは、クエリの実行時間のログシステムを記録するために使用されます。
ゆっくりしたログは、読み取りと書き込みの非常に高速、内部のメモリに保存されています
あなたは書き換えることができ redis.confのファイルを使用して、またはCONFIGのGET とCONFIG SETは、動的コマンドにそれらを変更します
slowlog-ログ遅く-10000 マイクロ秒よりもはるかに
CONFIGのSETのslowlogログ-遅いよりも100
CONFIG SETはslowlog-MAX-LEN千どのように多くの遅いログ保存
CONFIG遅いGET *
SLOWLOG GET
SLOWLOGのRESET