この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 34045|答える: 6

[出典] .NETは有効期限通知にRedisキャッシュを使用しています

[リンクをコピー]
2020年8月22日 10:34:59に投稿 | | | |
特定の時間制限付き操作を行う際には、結果に対するフィードバックが必要です。 例えば、注文は期限切れ後に自動的に削除され、注文は数日後に自動的に称賛され、未払い注文は15分後にクローズされるなど、これらは時間制限のあるタスクフレームワークやポーリング方式を使って完了できます。 本記事では、Redis の高度な機能キャッシュ期限切れイベント通知メカニズムと .NET/C# コードを組み合わせてビジネス要件を完了します。

紹介

利用シナリオ:1. 決済業界では未払い注文が自動的にクロージングされる 2. キャッシュ期限切れリマインダー

一般的に、未払い注文の自動クロージングを処理するためにタイミングサービスを使うことができます。例えば、未払い注文や期限切れの注文を処理するために1分ごとにインターフェースを呼び出すなどです。しかしこの場合、注文がなくても1分ごとに処理され、注文処理の最大遅延は59秒となり、タイミングサービスは常に利用可能でなければなりません

では、遅延の低い未払いや期限切れの注文がある場合に限り、Redisのキャッシュ期限切れメカニズムを使ってサブスクリプションをプッシュできる場合にどうすればいいのでしょうか。

Redisサブスクリプション

redis.conf の設定ファイル内のnotify-keyspace-events Exを修正してください。

カップリソースを節約するために、イベント通知はデフォルトで有効ではなく、デフォルトはnotify-keyspace-eventsです

# K キー空間通知、__keyspace@__ 付き <db>
# Eキーイベント通知、<db>接頭辞は __keysevent@__
# g del、expipre、rename、その他の一般的なコマンド、...
# $string 命令
# I 命令をリスト
#s Set コマンド
# h ハッシュコマンド
# z ordered set command
# x 有効期限イベント(キーが期限切れするたびに生成)
# E 追放イベント(キーがクリアされメモリが満杯になると生成)
# g$lshzxeの別名、つまり「AKE」はすべての出来事を意味する


notify-keyspace-events「KX」は、キーの無効化イベントを監視したいことを示します。 パラメータを文字列AKEに設定すると、あらゆる種類の通知を送信します。

私は自分のマシンにredisをサービスとしてインストールし、redis.windows.confの設定ファイルを修正し、効果を発揮するためにredisサービス設定を再起動する必要がありました。

.NET/C# コード例

パッケージは以下の通りです:



呼び出す



redis-cliでキャッシュを書いてみよう。





実際、redis-cliから次のコマンドを実行することでキャッシュの期限通知にも参加できます:




N台のクライアントがキャッシュ期限切れイベントの通知を購読すると、redisは以下の図のように、同じ期限メッセージをN人に通知します。これは以下の図のように示されています。



C#ソースコードのダウンロード:

https://down.itsvse.com/item/17856.html

概要

Redis Pub/Subは信頼性の低いメッセージシステムで、情報を保存せず、オンライン転送のみを行い、ACK確認機能もなく、サブスクリプションセグメントのみが転送されます。そのためKeyspace通知も信頼性に欠けるシステムです。ビジネスの信頼性が必要な場合、これは最適な選択肢ではありません。 一般的には、RabbitMQのDLX(Dead-Letter-Exchange)を導入することを推奨しており、これは遅延キュー関数です。 ただ、Redisのソリューションの方が実装が簡単で運用コストも安いだけです。 高い信頼性を必要としない企業にとっては依然として非常に便利です。




先の:.NET Core 3.1 インストール中国語スマートプロンプト
次に:.NETは完全な参照アセンブリアセンブリを取得できません
2020年8月29日 14:33:18に投稿 |
学ぶために
2021年11月30日 13:16:47に投稿 |
覚えてみろ
2021年11月30日 13:21:02に投稿 |
Redis Pub/Subは信頼性の低いメッセージシステムで、情報を保存せず、オンライン転送のみを行い、ACK確認機能もなく、サブスクリプションセグメントのみが転送されます。そのためKeyspace通知も信頼性に欠けるシステムです。ビジネスの信頼性が必要な場合、これは最適な選択肢ではありません。 一般的には、RabbitMQのDLX(Dead-Letter-Exchange)を導入することを推奨しており、これは遅延キュー関数です。 ただ、Redisのソリューションの方が実装が簡単で運用コストも安いだけです。 高い信頼性を必要としない企業にとっては依然として非常に便利です。
2022年2月14日 17:42:43に投稿 |
見て、学べ
2022年3月2日 15:25:00に投稿 |
覚えてみろ
2022年7月27日 16:40:13に投稿 |
学ぶために
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com