それは何Redisの?使用シナリオは何ですか?

まず、Redisのは何ですか

Redisのを言うためにまず最初に、NoSQLの約すべき第一話
「SQLだけでなく、」意味のNoSQL(SQLのNoSQL =だけではなく)、
非リレーショナルデータベースを参照します。インターネットWeb2.0のウェブサイトの台頭によって、Web2.0のサイト、特に大規模とWeb2.0の純粋な動的なサイトの高い同時SNSのタイプに対処する従来のリレーショナルデータベースは、不十分であるように見え克服することは困難な問題の多くを公開しましたではなく、独自の特性に起因するリレーショナルデータベースは、非常に迅速に開発されています。NoSQLデータベースは、特に、超大規模データ・ストレージを含むビッグデータアプリケーションの問題、に、もたらされた課題の複数のデータ型の大規模なデータ収集を解決するために生成されます。
(このようなGoogleやFacebookの毎日のようにそのユーザーのデータの兆ビットを収集します)。データ記憶装置のこれらのタイプは固定パターンを必要とせず、余分な操作が横方向に拡張することができません。

Redisの:リモート辞書サーバ(リモートディクショナリサーバ)Cで書かれた完全無料のオープンソース、であり、BSDライセンスに準拠は、NoSQLのの持続性を実行し、サポートするために、メモリに基づいた高性能(キー/値)は、分散インメモリ・データベースであり、データベース、また、データ構造サーバとして知られている最も人気のあるNoSQLの現在のデータベースの一つ。

二つは、使用シナリオをRedisの

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

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

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

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

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

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

4、順位の問題

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

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

  5、分散ロック

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

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

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

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

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

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

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

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

データディクショナリの間隔を返すことができzrangebylexキー分maxは、この機能を使用すると、私は、これは現在、Redisの中に一つだけがストアコンテンツあいまいクエリの機能をサポートしていることがわかった、あいまいクエリ機能することができます。

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

など8記憶関係、親指、友人、

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

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

9、キュー

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

おすすめ

転載: www.cnblogs.com/jxxblogs/p/12234723.html