Redis は、C 言語で書かれたオープンソースのキー/値ストレージ データベースです。キャッシュ、イベントの発行とサブスクリプション、高速キューなどのシナリオで使用できます。また、豊富なデータ型をサポートしています: string (文字列)、hash (ハッシュ)、list (リスト)、set (順序なしセット)、zset (並べ替えられたセット: 順序付きセット)
##のアプリケーション シナリオプロジェクトの Redis
1. データのキャッシュ
は、頻繁にクエリが必要で、変更がそれほど多くないクエリに最も一般的に使用されます。このデータはホット データと呼ばれることがよくあります。
2. メッセージ キュー
は、ActiveMQ や RocketMQ などのメッセージ サブスクリプション システムに相当します。データの一貫性要件がより高い場合でも、クリック数のカウントなど、MQ)
3、counter
を使用することをお勧めします。レートといいねレートを通じて、redis はアトミックであり、同時実行の問題を回避できます
4. 電子商取引 Web サイト情報
初期化ページ データのキャッシュ大手電子商取引プラットフォームの。たとえば、Qunar.com で航空券を購入する場合、ホームページ上の価格はクリックした価格とは異なります。
5. ホットスポット データ
#たとえば、ニュース Web サイトのリアルタイムのホットスポット、Weibo のホット検索などでは、次のことが必要です。頻繁に更新されること。データの総量が比較的大きい場合、データベースから直接クエリを実行するとパフォーマンスに影響します
Redis データ型のアプリケーション シナリオ
前述のとおり先ほど、Redis は 5 つのデータ型をサポートしています。さまざまな豊富なデータ型があるため、さまざまなシナリオでどのように選択すればよいでしょうか?
1. String
String は最も一般的に使用されるデータ型で、バイナリ、JSON 化されたオブジェクト、 Base64 でエンコードされた画像も同様です。 Redis の文字列の最大容量は 512MB であり、これは万能と言えます。
2. ハッシュ
は、構造化データの保存によく使用されます。たとえば、ユーザー ID、ニックネーム、およびフォーラム システムのアバター、ポイントおよびその他の情報。情報を変更する必要がある場合は、Key を介して Value を取り出し、デシリアライズし、項目の値を変更し、シリアライズして Redis に保存するだけです。ハッシュ構造が保存されるのは、ハッシュ構造が保存されるためです。単一のハッシュ要素が特定の数未満の場合に変更されます。圧縮されたストレージなので、メモリを大幅に節約できます。これは String 構造には存在しません。
3、リスト
List は双方向リンク リストとして実装されており、逆方向検索とトラバーサルをサポートできるため、操作がより便利になります。ただし、追加のメモリ オーバーヘッドが発生します。送信バッファ キューを含む、Redis 内の多くの実装、等このようなデータ構造が用いられる。さらに、lrange コマンドを使用して、優れたパフォーマンスと優れたユーザー エクスペリエンスを備えた Redis ベースのページング機能を実装できます。
4. Set
set が提供する外部関数は list の関数と似ていますが、特別な点は set が自動的に配置できることです。実際、データのリストを保存する必要があり、重複したデータが表示されたくない場合は、この時点で set を使用することを選択できます。
5. ソートセット
は、ある条件の重みに応じてソートすることができ、例えばランキングデータの適用が可能です。クリック数に基づいて。
Redis の機能:
1. Redis は純粋なメモリ操作であり、必要に応じて手動でハード ディスクに永続化する必要があります
2. Redis はシングルスレッドであるため、マルチスレッドでの頻繁なコンテキスト切り替え操作を回避できます。
3. Redis データ構造はシンプルであり、データの操作も比較的シンプルです
4. 使用される基礎となるモデルは異なります。一般的なシステムがシステム関数を呼び出すと、移動とリクエストに一定の時間が無駄になるため、Redis は独自の VM メカニズムを直接構築します。
##5. マルチチャネル I/O 多重化モデル、ノンブロッキング I/O
Redis 関連の知識の詳細については、を参照してください。 Redis の使用法チュートリアル 列!
以上がRedis は通常どのような種類のデータを保存しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。