Azure In-Role Cache 用の開発

重要

Microsoft では、すべての新しい開発で Azure Redis Cache を使用することをお勧めします。 Azure Cache オファリングの選択に関する最新のドキュメントとガイダンスについては、自分に適した Azure Cache オファリングを参照してください。

Microsoft Azure キャッシュには、キャッシュから項目を追加、更新、削除するための一連の API が用意されています。 Microsoft.ApplicationServer.Caching 名前空間でクラスとメソッドを使用することは、Azure キャッシュと直接やり取りする方法です。 一方、ASP.NET プロバイダーのいずれかを使用することは、Azure キャッシュを間接的に使用する方法です。 このセクションのトピックでは、プログラムによるキャッシュの直接的な使用について説明します。 キャッシュ用の ASP.NET プロバイダーの詳細については、「ASP.NET 4 Azure In-Role Cache 用キャッシュ プロバイダー」を参照してください。

プログラミング モデル

キャッシュ プログラミング モデルは、キャッシュアサイド プログラミング パターン用に設計されています。 データがキャッシュにない場合、分散キャッシュではなくアプリケーションが元のデータ ソースからキャッシュにデータを再度読み込む必要があります。

キャッシュ アサイド プログラミングに関する考慮事項

キャッシュされたデータが使用できない場合でもアプリケーションが動作を継続できるように、キャッシュに依存せずにアプリケーション コードが動作するように設計します。 キャッシュ内のデータは永続的には保持されないので、キャッシュ内のデータが使用不可能になっていることも考えられます。 たとえば、該当するデータを保持するサーバーが再起動された場合は、メモリ内のキャッシュされたアイテムは失われます。 キャッシュ内に存在しないアイテムを要求することをキャッシュ ミスと呼びます。

In-Roleキャッシュ高可用性機能を使用する場合、キャッシュされた項目のバックアップ コピーは、実行中のキャッシュ クラスターでのマシンとプロセスの障害から保護するのに役立ちます。 ただし、すべてのコンピューターが再起動された場合、高可用性を有効にしているときでも、結果的に持続性は失われます。 永続性を必要とする項目は、データベースまたはその他の永続的なストレージ手法を使用する必要があります。 キャッシュは、パフォーマンスとスケーラビリティを向上させるメカニズムなのです。

コードでキャッシュ ミスが発生する可能性があるその他の多くの理由があります。 たとえば、キャッシュ項目の有効期限が切れているか、通常の有効期限と削除ポリシーに基づいて削除された可能性があります。 理由に関係なく、アプリケーション コードは元のデータ ソースにアクセスしてアイテムをキャッシュしなおすことができる必要があります。

このセクションの内容

参照

概念

Azure In-Role Cache の使用