私たちは通常、多くの用途を見つける場所のRedis Redisのシナリオは以下のアプリケーションシナリオの要約であると理解され、要約します:

Redisの一般的なシナリオ

1、ホットデータキャッシュ

Redisのブロックアクセス速度ので、データ型は比較的豊富でサポートされているので、それは我々が有効期限とキャッシュの更新操作を設定することができ、追加の有効期限が切れると組み合わせて、ホットRedisのデータを格納するのに適している、この機能は、私たちのプロジェクトのほとんどすべては、最も一般的ですいくつかの使用。

2、ビジネスの使用を制限

Redisのコマンドは、キーの有効期間を設定するために使用することができます有効期限が切れ、Redisの後の時間は、それを削除します。この機能を使用すると、期間限定プロモーション情報、電話確認コードやその他のビジネスシナリオで使用することができます。

3、カウンターに関連する問題

コマンドは、原子増分incrbyのRedisを実現することができるので、そのような方法の多くの送信SMS、要求は制限するの制限としてではなく、特定の会社の電話番号に、分散のシーケンス番号を生成し、高同時スパイク活動にも適用することができるどのくらいのインタフェース1分、インターフェースは何回というように1日の制限を呼び出します。

4、順位の問題

リレーショナルデータベースのクエリの速度Pianmanの一般的なランキングの面では、それはにSortedSetソートのRedisのホットデータを利用することができます。

お茶の活動では、我々は、様々な部門の親指のランキングを表示する必要があるので、私は、ユーザー名上記のようにユーザーのOpenIDその後、各部門のためにSortedSetを作り、そして、トップスコアとして称賛のユーザーの数をポイントし、次にためハッシュを作るために、各ユーザーは、ユーザーのハッシュに基づいて情報を取得するユーザ名、その後、zrangebyscoreによって賞賛の数に応じてランキングポイントを得ることができ、パフォーマンスの経験の実用的なアプリケーションでこの時間もかなり良いです。

  5、分散ロック

setnxのRedisのの主な用途は、setnxコマンド:当社のサーバーので、遠くの背景には、あなたのベンゆうでこの機能は、使用されている、それ以外の場合は0を返し、何の成功がない場合は、キャッシュを設定し、1を返すことで「存在しない場合は設定します」クラスタは、タスクのタイミングは全て二台のマシン上で実行することができるので、成功したセットが実行された場合は正常に設定されていない場合setnxによってタスクのタイミングは、最初それがスケジュールされたタスクが実行されたことを示し、ロックを設定します。もちろん、具体的な事業と合わせ、我々は定期的なタスクとタスク実行のタイミングで、その後、有効期限は30分の時間よりも短くなるように設定されていることができ、タスクのタイミングを実行するために30分を言う、有効期限にこのサイクルをロックを追加することができます関連する時間がかかります。

もちろん、我々は分散ロックに別のシーン、デッドロックを防ぐために、主に組み合わせた有効期限が必要になります。この機能を適用することができます。

図6に示すように、動作の遅延

私は現在、関連するテストでこれをやったが、まだ私たちの実際のプロジェクトに適用されていない、私は次のシナリオにその性質を与えます。我々は、ユーザーをテストするために、インベントリ・ツー・オーダー、10分を取るとき例えば、購入して本当に十分です在庫を削減しながら、ドキュメントセットは、無効である場合、購入していません。2.8.0バージョンは、顧客が何らかの方法でイベント影響を受けるために、パブ/サブチャネル、Redisのデータセットをサブスクライブすることを可能にする鍵空間通知機能を提供して以来のRedis以来。だから次のソリューションを使用することができます上記のニーズのために、私たちは順番にされ、キーを設定し、10分には、我々はフォローアップを聞いて、キーの有効性を監視し、バックグラウンドでリスナーを実装期限が切れたときにキーの失敗を設定プラスロジック。もちろん、我々はまた、要件を満たすために、このようなメッセージングミドルウェア遅延キューサービスとしてのRabbitMQ、ActiveMQのを使用することができます。

7、ページング、あいまい検索

zrangebylex方法で設定Redisのコレクションには、次の構文を提供します。

ZRANGEBYLEXキー最小最大[LIMITオフセットのカウント]

- すべてのデータを取得することにより、ZRANGEBYLEX ZSETの+ - を表し、ここで、データ照会+ LIMIT 0 10を照合することができます

データ・ディクショナリの間隔を返すことができzrangebylexキー分maxは、この機能を使用すると、私は、これは現在、ストアコンテンツあいまいクエリのRedisのサポート機能では唯一のものであることが判明し、あいまいクエリ機能することができます。

数日前、私はこの機能を通過し、学校がテストデータ、60万学校のデータをシミュレートした、応答時間は約700ms、わずかに速くmysqlのクエリのようなよりですが、それは、IOデータベース操作の多くを避けることができるので、その全体的な直接のMySQLよりもより助長またはクエリ性能保証システム。

 

8ストレージの関係、親指、友人、など

リスト機能を備えた外部関数のRedisのセットが自動的に、あなたがデータのリストを格納する必要がある場合、データセットを複製したくない、重複解除は良い選択であるためにそれが設定することができますされている特別のリストに似ていますセットは、セットコレクション内のメンバーインターフェイスは、このリストが提供されていないかどうかを決定するために重要提供します。またはマイクロブログアプリケーションでは、コレクション内のユーザーの存在を懸念誰もが、二人が共通の友人の機能を実現見つけることは容易です。

この活性は、お茶に使用していた前さらに親指にユーザ設定記憶の親指との間の相関を使用することは、非常に、ときに10ミリ秒以内インターフェース制御の応答時間を、追従sismember方法の使用上の点か否かを判定する効率的。

9、キュー

このようRedisのコマンドリストのプッシュとポップリストので、簡単に操作キューを行うことが可能です。

おすすめ

転載: www.cnblogs.com/wadhf/p/11703516.html