文字列リストのハッシュセットZSET
5つのRedisの提供するデータ構造は、各データ構造の特性は、運用・保守Redisの理解の開発のために非常に重要です。
弦
Redisの文字列型は、最も基本的なデータ構造であり、最初のキーは、文字列型で、他のいくつかの構造は、文字列型に基づいて構築されているので、文字列型は、他の4つのデータ構造の尊重を学ぶための基盤を設定することができます。文字列型は、実際には文字列(単純な文字列、複雑な文字列(XML、JSON)、数値(整数、浮動小数点)、バイナリ(画像、オーディオ、ビデオ))が、最大512Mを超えないことができます。
-
使用シナリオ:
- キャッシュ機能:最も古典的な文字列の使用シナリオ、バッファ層最もRedisの、記憶層としてMySQLを、リクエストデータの大部分はRedisのを取得し、高いRedisの並行性の特性を有する支持するので、キャッシュは、典型的には、読み取りおよび加速度を再生することができバックエンドの圧力を下げます。(なぜRedisのは説明する次の記事の特性に高い同時実行をサポート)。
- カウンター:データが他のデータソースにさらに粉砕することができる一方で、多くのアプリケーションは、基本的なツールとしてカウントのRedisを使用しますが、彼は、迅速な回数、クエリキャッシュ機能を実現することができます。このような:ビデオ再生システムの数は、基本コンポーネントのRedisとして使用されるビデオプレーヤーの数を数えます。
- セッションの共有:負荷分散のための配慮、分散サービスアクセスユーザ情報は、別のサーバーにバランスの取れただろうし、ユーザーがバックでアクセスログを更新する必要があるかもしれません、あなたはここで、Redisのユーザセッションを集中管理することにより、この問題を回避することができますモードの下に限り、高い可用性とスケーラビリティのRedisの保証たびに、ユーザーがログイン情報を更新または照会するために得るように、集中型のRedisから直接取得されています。
- スピード:SMSインターフェースが頻繁にアクセスされていないため、安全上の理由から、あなたがログインするたびに、ユーザは、毎分検証コードの頻度を制限することができ、ユーザーは携帯電話のコードを入力することができます。
第二に、ハッシュ
Redisのにキータイプは、値= {{FIELD1、値1}、...フィールドN、値N}}のように、キー構造のターンハッシュ
- 使用シナリオ:更新操作でより直感的でより便利な文字列のキャッシュ情報に対する構造のハッシュ。そう頻繁に使用するユーザー情報などの管理など、が、ハッシュおよびリレーショナルデータベースの種類が異なっている、ハッシュの種類はまばらで、リレーショナルデータベースは、リレーショナルデータベースは、複雑なリレーショナルクエリ、Redisのことができ、完全に構造化されています複雑なリレーショナルクエリ、開発の難しさ、高いメンテナンスコストをシミュレートします。
第三に、リスト
リストタイプは文字列の順序付けられた複数格納するために使用され、リスト内の各文字列は、要素(エレメント)は、リストは、2つのチームのリストであってもよいRedisの2 ^ 32 -1素子まで保存することができなりますインサート(pubsh)とPOP(POP)の端部は、また、要素指定されたインデックステーブル等を取得する、リスト内の要素の指定された範囲を得ることができ、リストは、実際に、スタックとキュー役割として機能することができ、より柔軟なデータ構造であります多くの開発シナリオがあります。
-
利点:
- リストの要素は、あなたが、インデックスまたはインデックスによって一定範囲内の要素のリストを取得することができることを意味、発注されます。
- リスト内の要素を繰り返すことができます。
-
使用シナリオ:
- メッセージキュー:Redisの組成物を遮断するコマンドキューを実現することができるbrpop + lpush brpopコマンドを使用して、消費者のクライアントの複数の要素のリストの端部が遮断されたとき、プロデューサクライアントはlupsh、「グラブ」と左側のリスト要素から挿入され、消費者の負荷分散と高可用性を確実にする複数のクライアントモデル↑ニュースをキューイング
- 記事一覧:各ユーザーは、記事の独自のリストを持っている今、ディスプレイの記事のリストをページングされ、その後、あなたがリストを使用して検討することができ、リストだけでなく、整然としたで、インデックス範囲に応じて支持要素を取得します。
-
ヒントのリストを使用します。
- lpush + LPOP =スタック(栈)
- lpush + RPOP =キュー(待ち行列)
- lpush + =キャップされたコレクション(有限集合)LTRIM
- lpush + brpop =メッセージキュー(メッセージキュー)
第四に、コレクション
コレクション型の要素は、文字列、および複数のリストを格納するために使用されますが、違いは要素の重複セットを許可されていない、とコレクションの要素が順序付けられていない、下付きインデックスは、コレクションのRedisのサポートに加えて要素を取得することはできません追加と削除内の検索を変更するには、また交差点、労働組合、違い、および優れたコレクション型の使用の合理化に複数のコレクションをサポートしていますが、実際の開発に多くの実用的な問題を解決することができます。
-
使用シナリオ:
- ラベル(タグ):など、よりエンターテインメント、スポーツに興味があり、別のニュースに興味がある可能性があり、ユーザーとしてのタイプの典型的な使用シナリオのコレクションは、これらの利益はあなたが人々に同じラベルを取得することができ、これらのデータをラベルであり、かつ共通の関心のユーザー・ラベルは、これらのデータは、ユーザーエクスペリエンスのために重要であり、強力なユーザー粘度を有します。(ユーザとラベルの間の関係は、一貫性のないデータによって引き起こされるコマンドの失敗の一部を防ぐために、実行するメンテナンス事に置かれるべきです)
-
他の
- SADDがタグ付け=(タグ)
- SPOP / srandmember =ランダムアイテム(例えば、宝くじなどの乱数を生成します)
- SADD +焼結=ソーシャルグラフ(社会的ニーズ)
第五に、セットを注文しました
コレクションとコレクションが本質的にリンクされ命じ、彼はメンバーのコレクションは重複機能を持つことができないまま、その差は要素の順序付きセットを注文することができるということでしたが、それとインデックス添字別の種類を使用して、リストそれは、設定されたスコア、根拠の並べ替えの各要素を与えることです。(要素の順序セットを繰り返すことはできませんが、csoreはそれを繰り返すことができますし、彼のクラスメートは数を繰り返すことはできませんが、テストの得点が同じであってもよい学びました)。
- リスト、セット、3つの類似点と相違点のセットを注文しました
-
使用シナリオ:
- リスト:古典的な使用シナリオの順序付きコレクション。このようなユーザーがアップロードした動画のためのランキングを行うためのビデオ・サイトとして、リストのメンテナンスは、多くの方法かもしれ:時間によって、プレイヤーの量に応じて、その上の賞賛を得た。数に応じました。