ホームページ  >  記事  >  ウェブフロントエンド  >  Redis の 5 つの一般的なアプリケーション シナリオの分析

Redis の 5 つの一般的なアプリケーション シナリオの分析

小云云
小云云オリジナル
2018-02-28 15:11:177047ブラウズ

Redis が単なるキーと値のストアであるという印象をお持ちの場合は、Redis の多くの強力な機能を見逃していることになります。Redis は、豊富なデータ構造を備えた強力なメモリ ストレージであり、データベース、キャッシュ、メッセージキューなど

1. ページ全体のキャッシュ

サーバー側のコンテンツ レンダリングを使用していて、リクエストごとに各ページを再レンダリングしたくない場合は、Redis を使用して頻繁にリクエストされるコンテンツをキャッシュすることで、ページの容量を大幅に削減できます。リクエストの遅延に関しては、多くのフレームワークがすでに Redis を使用してページを静的にキャッシュします。

// Set the page that will last 1 minute
SET key "<html>...</html>" EX 60
// Get the page
GET key
2. ランキングリスト

Redis はメモリに基づいており、増減操作を非常に高速かつ効率的に処理できます。SQL リクエストの処理方法と比較して、パフォーマンスの向上は非常に大きくなります。

Redis の順序付きコレクションは、「大きなリストから上位 N 個の要素を取得する」をミリ秒単位で簡単に実装でき、非常にシンプルです。

// Add an item to the sorted set
ZADD sortedSet 1 "one"
// Get all items from the sorted set
ZRANGE sortedSet 0 -1
// Get all items from the sorted set with their score
ZRANGE sortedSet 0 -1 WITHSCORES
3. セッション ストレージ

これは、memcache と同様のセッション ストレージと比較して、キャッシュ データを永続化する機能があります。これはより実用的であり、セッションの突然の消失によって引き起こされるユーザー エクスペリエンスの問題を回避します。

// Set session that will last 1 minute
SET randomHash "{userId}" EX 60
// Get userId
GET randomHash
4. キュー

たとえば、メール送信キューと他のアプリケーションによる使用を待機するデータ キューは、効率的なキューを簡単かつ自然に作成できます。

// Add a Message
HSET messages <id> <message>
ZADD due <due_timestamp> <id>
// Recieving Message
ZRANGEBYSCORE due -inf <current_timestamp> LIMIT 0 1
HGET messages <message_id>
// Delete  Message
ZREM due <message_id>
HDEL messages <message_id>
5. パブリッシュ/サブスクライブ

pub/sub は、リアルタイム チャット システムやソーシャル ネットワークでの通知トリガーなどを作成できる、Redis に組み込まれている非常に強力な機能です。

// Add a message to a channel
PUBLISH channel message
// Recieve messages from a channel
SUBSCRIBE channel
関連する推奨事項:


例を使用した Redis を使用した PHP の説明

PHP Redis カウンター クラスの定義と使用法について

PHP プロジェクトで Redis を使用する必要があるシナリオ

以上がRedis の 5 つの一般的なアプリケーション シナリオの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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