ホームページ  >  記事  >  データベース  >  リディスとは何ですか?応用シナリオは何ですか?

リディスとは何ですか?応用シナリオは何ですか?

不言
不言オリジナル
2018-09-27 14:22:432530ブラウズ

この記事では、Redis とは何かについて説明します。応用シナリオは何ですか?困っている友人は参考にしていただければ幸いです。

1. Redis の概要

Redis は、文字列、リスト、セット、zset、およびハッシュ タイプのデータをサポートするオープン ソースのキー値シングル スレッド データベースです。

デフォルトのポート: 6379

デフォルトのデータベース数: 16

2. 利点:

1.nosql データベースには相関関係がなく、単純なデータ構造があり、テーブルの拡張が容易になります。

2.nosql は読み取り速度が速く、より大きなデータを高速に処理できます。

#3 適用可能なシナリオ:

1 . データの高度な同時読み取りと書き込み

2. 大規模なデータの読み取りと書き込み

高いスケーラビリティ要件を伴うデータ

4. 不快なシナリオ:

1. トランザクションのサポートが必要 (非リレーショナル データベース)

2. SQL 構造化クエリ ストレージに基づく、複雑な関係5 、アプリケーション シナリオ

次の著者は Redis 作者である @antirez です。彼は、誰もが概要を理解できるように、NoSQLFan がより適しているいくつかの

アプリケーション シナリオについて説明しています。

# #1. 最新の N データを取得する操作たとえば、通常、Web サイトの最新の記事を取得する場合、次の方法で最新の 5000 件のコメントの ID を Redis に配置できます。コレクションをリストし、コレクションを超えた部分をデータベースから取得します

LPUSH 最新.commentseddfa97ffc1dc71769e3f42e462dfe8e コマンドを使用して、

リスト コレクションにデータを挿入します
  • ##挿入が完了したら、LTRIM 最新.comments 0 5000 コマンドを使用して、常に最新の 5000 ID のみを保存します

  • その後、次のように使用できます。クライアント上の特定のページのコメントを取得するとき ロジック (疑似コード)

  • FUNCTION get_latest_comments(start,num_items):
        id_list = redis.lrange("latest.comments",start,start+num_items-1)
        IF id_list.length < num_items
            id_list = SQL_DB("SELECT ... ORDER BY time LIMIT ...")
        END
        RETURN id_list
    END
  • 特定のカテゴリの最新 N 項目など、異なるフィルタリングのディメンションがある場合は、別のフィルタリング ディメンションを作成できます。このカテゴリに基づいてリストを作成し、ID のみを保存する場合、Redis は非常に効率的です。

    2.
  • ランキング アプリケーション、上位 N 個の操作を取得します

この要件と上記の要件の違いは、前の操作では重みとして時間を使用し、今回の操作では重みとして時間を使用することです。最初の条件は、いいね数によるソートなどの重みです。このとき、ソートしたい値をソート済みの

set のスコアに設定する必要があります。を指定し、特定のデータを対応する値に設定すると、毎回 ZADD コマンドを 1 つ実行するだけで済みます。

3. 有効期限を正確に設定する必要があるアプリケーションたとえば、上記の並べ替えセットのスコア値を有効期限のタイムスタンプに設定できます。 Redis の有効期限切れデータを削除するだけでなく、Redis の有効期限をデータベース内のデータのインデックスとして完全にみなして使用することもできます。 Redis は必要なデータを見つけて有効期限が切れたら削除し、対応するレコードをデータベースから正確に削除します。 4.

カウンター アプリケーション

Redis コマンドはすべてアトミックです。INCR および DECR コマンドを使用して簡単にカウンター システムを構築できます。

5.一定期間の全データ重複排除値を取得するUniq操作これはRedisの設定されたデータ構造を利用するのに最適です。投げ続けるだけで済みます。セットへのデータはコレクションを意味するため、自動的に重複排除されます。

6. リアルタイム システム、

アンチスパム システム

上記の set 関数を通じて、エンド ユーザーが特定の操作を行ったかどうかを知ることができます。操作と分析のコレクション、統計的比較などを見つけることができます。不可能なことは何もありません、ただ想像できないだけです。

7. Pub/Sub はリアルタイム メッセージング システムを構築します Redis の Pub/Sub システムは、リアルタイム チャット システムの構築例など、リアルタイム メッセージング システムを構築できます。 Pub/Sub を使用します。

8.

キュー システムを構築する

リストを使用してキュー システムを構築し、ソート セットを使用して

優先度

キュー システムを構築します。

以上がリディスとは何ですか?応用シナリオは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。