Prisma Accelerateによるキャッシングは、読み込みが多いアプリケーションのパフォーマンスを大幅に向上させ、データベースへの負担を軽減します。オンデマンドキャッシュ無効化により、更新を正確に制御でき、管理と最適化が簡素化されるとともに、常に最新の情報が提供されます。
キャッシングの簡単な復習
キャッシングは、頻繁にアクセスされるデータを一時的な層に保存して、より高速なアクセスを可能にし、元のソースからの繰り返しフェッチの必要性を最小限に抑えます。Prisma Accelerateは、サーバーに最も近い場所にデータをキャッシュし、より高速なデータ取得を提供します。
スピードテストをぜひお試しください。キャッシングがいかにアプリケーションのパフォーマンスを劇的に向上させるかを直接体験できます。
キャッシングの利点
- レイテンシを削減することでパフォーマンスを向上
- サーバー負荷とリソース使用量を削減
- 応答時間を高速化し、ユーザーエクスペリエンスを向上
- ネットワーク帯域幅の消費を削減
- より多くのトラフィックを処理することでスケーラビリティを向上
しかし、キャッシュされたデータの正確性を維持することが重要です。オンデマンドキャッシュ無効化は、古いデータを削除することで、ユーザーがリアルタイムの情報を受け取ることを保証します。これは難しいバランスであり、不適切な無効化は、古いデータを提供したり、不必要にキャッシュをクリアしたりすることにつながり、パフォーマンスと信頼性の両方に影響を与えます。
キャッシュ無効化の重要性
オンデマンドキャッシュ無効化は、キャッシュされたデータの速度という利点を享受しながら、データの整合性を維持するために不可欠です。以前のバージョンのPrisma Accelerateでは、キャッシュ戦略によっては、TTLまたはSWRタイマーの期限切れを待つ必要があり、データ更新のタイミングを制御するのに限界がありました。今では、オンデマンドキャッシュ無効化により、必要な時に正確にキャッシュを更新でき、より動的で応答性の高いエクスペリエンスが可能になります。
ユースケース: Hackernewsフォーラム
Hackernewsのような、新しい投稿やアップボートが絶えず追加されるシナリオを想像してみてください。キャッシングは人気のある記事の取得を劇的に高速化し、サーバー負荷を軽減します。しかし、適切なオンデマンド無効化がなければ、ユーザーには古いランキング、コメント、あるいは完全に削除された投稿が表示される可能性があります。この遅延は、古いデータでユーザーを誤解させ、エクスペリエンスを低下させ、エンゲージメントを低下させる可能性があります。
例えば、多くのアップボートを得ている投稿は、オンデマンド無効化がなければリアルタイムで反映されず、トップ投稿リストが不正確なままになります。この技術を採用することで、投票、コメント、編集などの更新が一貫して反映され、フィードが新鮮に保たれ、ユーザーのエンゲージメントが維持されます。
Prisma Accelerateオンデマンドキャッシュ無効化をプロジェクトに追加する方法
Hackernewsの例を引き続き、最新の投稿のキャッシュされたリストを取得しているとします。以下のようなクエリで最新の投稿を取得し、高いTime-to-Live (TTL) 値で結果をキャッシュすることで、データベースへの負荷は大幅に軽減されます。
Prisma Accelerateでは、タグを使用してキャッシュを無効化できます。タグは、キャッシュされたクエリ結果をグループ化して管理を容易にします。例を見てみましょう。
-
まず、クエリの
cacheStrategy
にタグを追加します。 -
次に、新しい投稿を追加する際に、
$accelerate.invalidate
を使用して、オンデマンド無効化によりキャッシュを即座に更新します。 -
同様に、投稿にアップボートした場合もキャッシュを無効化できます。
このように、オンデマンドキャッシュ再検証は非常に簡単です。動作を確認するには、サンプルアプリをチェックしてください。
クエリのキャッシングを開始
オンデマンドキャッシュ無効化を活用して、クエリパフォーマンスを向上させ、アプリ全体の応答性を高め、データベースへの負荷を軽減しましょう。
Accelerateを始める
Accelerateでのキャッシングに関するドキュメントを読む
Xでのさらなるエキサイティングな更新にご期待ください。また、変更ログにもご注目ください。ご不明な点がございましたら、お気軽にDiscordまでご連絡ください。
次回の投稿をお見逃しなく!
Prismaニュースレターに登録する