ホームページ  >  記事  >  データベース  >  Redis はどのようなシナリオに適していますか?

Redis はどのようなシナリオに適していますか?

藏色散人
藏色散人オリジナル
2019-06-11 09:54:4426218ブラウズ

Redis はどのようなシナリオに適していますか?

Redis はどのようなシナリオに適していますか?

1. キャッシュ

キャッシュは、ほぼすべての中大規模 Web サイトにとって必須となっています。キャッシュを合理的に使用すると、Web サイトのアクセス速度が向上するだけではありません。 、データベースへの負担も大幅に軽減できます。 Redis はキーの有効期限機能と柔軟なキー削除戦略を提供するため、現在多くのキャッシュの場面で使用されています。 (推奨: 「Redis ビデオ チュートリアル 」)

2. ランキング

多くの Web サイトには、JD.com の月次売上リストなどのランキング アプリケーションがあります。 、時間別の商品新着ランキングなど。 Redis が提供する順序付きセット データ構造は、さまざまな複雑なランキング アプリケーションを実装できます。

3. カウンター

ECサイトでの商品の閲覧数や動画サイトでの動画再生数などカウンターとは。データのリアルタイム性を確保するには、閲覧ごとに 1 を与える必要があり、同時実行性が高い場合、毎回データベース操作を要求するのは間違いなく困難であり、プレッシャーになります。 Redis が提供する incr コマンドは、非常に優れたパフォーマンスでカウンター関数とメモリ操作を実装しており、これらのカウント シナリオに非常に適しています。

4. 分散セッション

クラスター モードでは、アプリケーションがそれほど多くない場合、通常はコンテナーに付属するセッション レプリケーション機能を使用するだけで十分です。比較的複雑なシステムでは、Redisなどのインメモリデータベースを中心としたセッションサービスが構築されることが一般的であり、セッションはコンテナではなく、セッションサービスとインメモリデータベースによって管理されるようになりました。

5. 分散ロック

分散テクノロジーは多くのインターネット企業で使用されています。分散テクノロジーによってもたらされる技術的な課題は、同じリソースの同時実行です。アクセスなどグローバル ID、在庫削減、フラッシュ販売などのシナリオ。同時実行性が低いシナリオでは、データベースの悲観的ロックと楽観的ロックを使用できます。ただし、同時実行性が高いシナリオでは、リソースへの同時アクセスを制御するためにデータベース ロックを使用する必要があります。これは理想的ではなく、データベースのパフォーマンスに大きな影響を与えます。 Redis の setnx 関数を使用して、分散ロックを書き込むことができます。設定が 1 を返した場合、ロックの取得が成功したことを意味します。それ以外の場合、ロックの取得は失敗しました。実際のアプリケーションではさらに詳細を考慮する必要があります。

6. ソーシャル ネットワーク

好き、嫌い、フォローする/フォローされる、共通の友達などはソーシャル ネットワーキング サイトの基本的な機能です。比較的大規模であり、従来のリレーショナル データベース タイプではこの種のデータの保存には適していませんが、Redis が提供するハッシュ、セットなどのデータ構造を使用すると、これらの機能を簡単に実現できます。

7. 最新リスト

Redis リスト構造、LPUSH はリストの先頭にキーワードとしてコンテンツ ID を挿入でき、LTRIM を使用して数を制限できますリストの数が多いため、リストには常に N 個の ID が存在します。最新のリストをクエリする必要はなく、ID に基づいて対応するコンテンツ ページに移動するだけです。

8. メッセージ システム

メッセージ キューは、ActiveMQ、RabbitMQ、Kafka やその他の一般的なメッセージ キュー ミドルウェアなど、大規模な Web サイトに必要なミドルウェアであり、主に使用されます。ビジネスソリューション向け リアルタイム性の低いサービスの結合、トラフィックのピークカット、非同期処理。 Redis は、単純なメッセージ キュー システムを実装できるパブリッシュ/サブスクライブおよびブロック キュー機能を提供します。さらに、これはプロフェッショナルなメッセージ ミドルウェアと比較することはできません。

以上がRedis はどのようなシナリオに適していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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