WindowsAzure共有キャッシュを使用しています。私はいくつかの問題に遭遇しました:
- キャッシュに存在するキーを知る方法は?方法のようなものはあり
GetAllKeys()
ますか? - 電話することはできます
clearAll()
か? - リージョンを使用できないのはなぜですか?
ありがとう。
WindowsAzure共有キャッシュを使用しています。私はいくつかの問題に遭遇しました:
GetAllKeys()
ますか? clearAll()
か? ありがとう。
このセクションは、 WindowsAzureキャッシングに適用されます
Windows Azureには、次の2種類のキャッシュモードがあります。
キャッシュに何があるかを知る方法は?「GetAllKeys()」メソッドのようなものはありますか?
レポート/監査のためのより多くのアプリケーションのためにその情報が必要ですか?マイクロソフトがその方法を提供しなかったのには、1つの理由があります。それは、返された情報がすぐに廃止される可能性があるということです。キャッシュアイテムはいつでも期限切れになる可能性があるため(有効期限とキャッシュにアイテムを追加する時間によって異なります)、 GetAllKeys()メソッドから受け取る情報は数秒または数ミリ秒後に無効になる可能性があります。
キャッシュ使用量の標準パターンは
Null
は、そのアイテムを作成し、キャッシュに追加/追加します同じ場所に配置されたロールキャッシング
clearAll()は可能ですか?
キャッシュの削除について心配する必要はないと思います。キャッシュエビクションポリシーをLRU(最近使用されたもの)に設定すると、最も使用頻度の低いアイテムが最初に破棄されます。したがって、「キャッシュにスペースがありません」のようなものは決して得られません。
なぜレゴインを使用できないのですか?
同じインスタンスでキャッシュロケートを使用する場合にのみ可能です。専用ロールキャッシングはそれをサポートしていません。
このセクションは、 WindowsAzure共有キャッシュに適用されます
Windows Azure共有キャッシングは、クライアント側の観点からはWindows Azureキャッシング(上記)と非常によく似ており、すべての説明は共有キャッシングにも当てはまります。
アイテムの削除に小さな変更があります。共有キャッシングでは、特定の有効期限のないアイテムは48時間後に期限切れになります。ただし、 X分やY日などの明示的な有効期限を使用して、(Add
およびメソッドのさまざまなオーバーロードを介して)キャッシュにアイテムを追加できます。Put
キャッシュのサイズ(作成時に選択したキャッシュサイズ)を超えると、キャッシュサービスは、メモリの問題が解決されるまで(新しいキャッシュアイテムを追加するのに十分なメモリがある)、キャッシュ内の「アイテムの削除」を開始します。「エビクション」中にLRUメカニズムが使用されます-キャッシュ内で最も最近使用されていないアイテムが削除されます。
キャッシュアイテムを処理するための取得、チェック、および再作成のアプローチ(上記で説明)は、共有キャッシュでも機能します。
これが、Azureキャッシングと共有キャッシングの理解に役立つことを願っています。
次の方法では、キャッシュ内のすべてのデータをクリアします。
public static void InvalidateCache(string cacheName)
{
DataCache desiredCache = new DataCache(cacheName);
foreach (string regionName in desiredCache.GetSystemRegions())
{
desiredCache.ClearRegion(regionName);
}
}