Redis は、キーと値のペアを使用してデータを保存し、さまざまなデータ構造をサポートする非常に人気のあるオープンソースのメモリ内データベースです。 Redis は、文字列、ハッシュ、リスト、セット、順序付きセットの 5 つの主要なデータ構造を提供します。この記事では、各データ構造の特徴と適用シナリオを詳しく紹介します。
- String
String は、Redis でサポートされる最も基本的なデータ構造の 1 つで、数値、テキスト、バイナリ データなど、あらゆる種類のデータを保存できます。 。文字列データ構造でサポートされる操作には、設定、取得、削除、変更が含まれます。
よく使用される文字列操作:
(1) SET キー値: キー値のペアを設定します。
(2) GET キー: ## キーに対応する値を取得します。
# (3) DEL キー: キーと値のペアを削除します。
(4) INCR キー: キーに対応する値に 1 を加算します。
(5) DECR キー: 値を減少します。キーに 1 ずつ対応する値
文字列データ構造には、キャッシュされたデータ、カウンター、計算機などを含む幅広いアプリケーション シナリオがあります。
ハッシュ-
ハッシュはキーと値のペアのコレクションであり、各キーが値に対応します。ハッシュ キーと値のペアのキーは常に文字列であり、値は文字列、数値、またはその他のハッシュ テーブルにすることができます。
一般的に使用されるハッシュ演算:
(1) HSET キー フィールドの値: ハッシュ テーブル内のフィールドに値を割り当てます。
(2) HGET キー フィールド: hash テーブルフィールドの値
(3) HDEL キーフィールド 1 [フィールド 2]: ハッシュテーブル内の 1 つ以上のフィールドを削除します
(4) HINCRBY キーフィールドのインクリメント: ハッシュテーブルをインクリメントしますフィールドと値
ハッシュ データ構造のアプリケーション シナリオには、オブジェクト、ユーザー データ、製品属性などの保存が含まれます。
リスト-
リストは、挿入順に並べ替えられた文字列のリストです。リストの先頭または末尾で要素を挿入または削除できます。リスト データ構造は、挿入、削除、スライス、取得、検索などの操作をサポートします。
よく使用されるリスト操作:
(1) LPUSH キー値: リストの先頭に値を挿入します。
(2) RPUSH キー値: 値を挿入します。リストの最後
(3)LPOP キー: リストから要素を削除して返します
(4)RPOP キー: リストから最後の要素を削除して返します
(5) LINDEX キー インデックス: リスト内の指定されたインデックスを持つ要素を取得します。
リスト データ構造のアプリケーション シナリオには、メッセージ キュー、タスク キュー、ニュース リスト、最近使用したアイテムなどが含まれます。 。
コレクション-
コレクションは、要素の重複を許可しない、順序付けされていない文字列のコレクションです。 Redis は、追加、削除、結合、交差、差分などの多くの集合操作を提供します。
一般的に使用されるコレクション操作:
(1) SADD キー メンバー: コレクションに要素を追加します。
(2) SREM キー メンバー: コレクションから要素を削除します
(3) SMEMBERS key: セット内のすべての要素を取得します
(4) SUNION key1 key2: 2 つのセットの和集合を取得します
(5) SINTER key1 key2: 取得2 つのコレクションの交差部分
コレクション データ構造のアプリケーション シナリオには、友人リスト、趣味などが含まれます。
順序付きセット-
順序付きセットは文字列の順序付きセットであり、各要素にはスコアがあり、スコアに従って小さいものから大きいものへと並べられています。ソートされたセットは、スコアに基づいてランキングを行う必要があるシナリオでよく使用されます。
一般的に使用される順序セット操作:
(1) ZADD キー スコア メンバー: 順序セットに要素を追加します。
(2) ZRANK キー メンバー: のランキングを取得します。順序付き集合内の要素
(3) ZSCORE キー メンバ: 順序付き集合内の要素のスコアを取得
(4) ZRANGE キー start stop [WITHSCORES]: 順序付き集合を取得
#の指定範囲内の要素 順序付きセット データ構造のアプリケーション シナリオには、スコアに従って並べ替える必要があるランキングなどのビジネス シナリオが含まれます。
概要
Redis はさまざまなデータ構造をサポートしており、これらのデータ構造はさまざまなシナリオでのデータの問題を解決できるだけでなく、柔軟性とパフォーマンスの最適化も提供します。使用するデータ構造を選択するときは、シナリオのニーズに基づいて選択する必要があります。たとえば、要素を迅速にクエリする必要がある順序付きセットは順序付きセット データ構造の使用に適しており、挿入順序に従って並べ替える必要があるタスク キューはリスト データ構造の使用に適しています。
以上がRedis の 5 つのデータ構造の詳細な導入と適用シナリオの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。