04:Redisの消費パターンとサービス - 拡張遅いログ

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

 

 

おすすめ

転載: www.cnblogs.com/jim-xu/p/11617298.html