Redisはキャッシュとして非常に高い人気を得ました。高速であるだけでなく、使いやすいです。 Redisをキャッシュとして使用する理由をお見せしましょう。
アプリケーションのキャッシュは、大規模なWebアプリケーションを実行するために重要です。 Redisは、このタスクを支援するためにここにあります。
私たち一人一人は、アプリケーションの動作が遅い状況に遭遇しました。最高のコードでさえ、高負荷ではパフォーマンスが低下します。
キャッシングは、パフォーマンスを向上させ、応答時間を短縮するための高速で比較的安価な方法です。
Redis( RE モテDI 派手なS erver)は、分散キャッシュとして最も頻繁に使用されるオープンソースのメモリ内データストアです。データへの超高速アクセスを可能にするように設計された、さまざまな効率的なデータ構造を提供します。
Redisは、NoSQLデータベースおよびキー/値ストアとも呼ばれます。データをディスクではなくメモリに保存するため、Redisは比類のない速度、信頼性、パフォーマンスを提供します。
さて、メモリ内のデータストアとは何ですか?簡単に言うと、データセット全体をRAMに保持するデータベースです。データベースにクエリを実行したり、データベース内のデータを更新したりするたびに、メインメモリにのみアクセスします。
したがって、これらの操作に関係するディスクはありません。そして、メインメモリはどのディスクよりもはるかに高速であるため、これは素晴らしいことです。
キャッシュのプライマリ 目的は、アプリケーションのメインメモリスペースの外部に保存されているデータにアクセスするために必要な時間を短縮することです。
キャッシュを使用せずに、アプリケーションはすべての要求に対してデータソースと対話します。対照的に、キャッシュが使用されている場合は、外部データソースへの単一のリクエストのみが必要であり、後続のアクセスはキャッシュから提供されます。
アプリケーションが外部データソースに依存している場合、それらのソースの遅延とスループットがパフォーマンスのボトルネックになる可能性があります。パフォーマンスを向上させる1つの方法は、アプリケーションに物理的に近いメモリにデータを保存して操作することです。
ここでRedisが活躍します。 Redisは、すべてのデータをメモリに保存するように構築されており、データの読み取りまたは書き込み時に可能な限り最速のパフォーマンスを提供します。
Redisは非常に高速です。ミリ秒未満の応答時間を実現し、要求の厳しいリアルタイムアプリケーションに毎秒数百万のリクエストを送信できるようにします。
通常、頻繁にアクセスされるデータをRedisに保存して、データが要求されたときにデータベースではなくキャッシュから取得できるようにします。
その後、データに変更が加えられるたびに関連するキャッシュを無効にして、キャッシュを最新の状態に保つことができます。
Redisキャッシュはどのように機能しますか
WordPressベースのウェブサイトがあるとしましょう。
WordPressページが初めて読み込まれると、サーバーでデータベースクエリが実行されます。 Redisは、このクエリを記憶またはキャッシュします。
そのため、別のユーザーがWordPressページを読み込むと、データベースにクエリを実行しなくても、Redisとメモリから結果が提供されます。
オブジェクトキャッシュは、WordPressページの読み込みに必要なメモリにSQLクエリをキャッシュすることで機能します。次に、ページが読み込まれると、結果のSQLクエリ結果がRedisによってメモリから提供されるため、クエリがデータベースにヒットする必要はありません。
その結果、ページの読み込み時間が短縮され、データベースリソースへのサーバーの影響が少なくなります。
ハードドライブよりもメモリ(物理RAM)のデータにアクセスする方がはるかに高速です。 そのため、アプリケーションがアクセスしたいデータがメインメモリ内にある場合、ハードドライブに保存されている場合よりも、そのデータにアクセスする方がはるかに簡単であることに気付くのは簡単です。
クエリがRedisで利用できない場合、データベースが結果を提供し、Redisが結果をキャッシュに追加します。
ただし、データベースで値が更新されたとします(たとえば、WordPressで新しい投稿またはページが作成されます)。次に、そのクエリのRedis値が無効になり、キャッシュされたデータが不十分になるのを防ぎます。
Redisを使用する理由
- クイックレスポンスデータベース: データをディスクではなくメモリに保存します。読み取りおよび書き込み操作を実行する場合、その応答時間は他の応答時間よりも速くなります。負荷を軽減してパフォーマンスを向上させるためのサポートとして他のデータベースと一緒に使用できますが、プライマリデータベースとしても使用できます。
- データの永続性 : Redisは永続ディスクストレージを使用して、プロセスの停止やネットワークのボトルネックに耐えます。
- セッションキャッシュ :Redisの最も明白なユースケースの1つは、Redisをセッションキャッシュとして使用することです。他のセッションストアでRedisを使用すると、Redisは永続性を提供します。
- キーベースのアクセス: Redisは、キーによってRedisからデータが保存およびフェッチされるKey-Valueモデルに基づいています。キーベースのアクセスにより、非常に効率的なアクセス時間が可能になり、このモデルは自然にキャッシングにマッピングされます。
そのため、このトピックで利用できる情報のほんの一部にすぎません。 Redisの学習の詳細については、概要が説明されている利用可能なリソースを含むドキュメントにアクセスできます。