2つの主な理由から、Azureにキャッシュを実装する必要があります。
- 反復的なデータアクセスを高速化
- データベースへのストレスを軽減します
キャッシュする予定のデータの特徴は次のとおりです。
- 比較的小さい(1〜100 kb)
- 各顧客に固有
- プライベートではありませんが、ランダムな人がキャッシュ全体をナビゲートすることは望んでいません
- XMLまたはJSON
- C#によって消費されます(つまり、htmlで直接リンクされていません)
- ほとんどの週はデータが変更されませんが、一部の日はデータが数回変更される可能性があります
この特定の目的では、テーブルストレージはBlobストレージよりも優れているように見え(画像、CSS、JavaScript用にBlobストレージを実装しただけです)、WindowsAzureキャッシングはWindowsAzure共有キャッシュよりも優れているように見えます(おそらくほとんどの場合、共有キャッシングはほとんどレガシーです)この時点で の機能)。
両方のプログラミングAPIは単純に見えます。私たちがクラウドサイトに支払うものと比較すると、それぞれのコストはごくわずかであるように思われます。
これまでのところ、Azure Cachingの長所と短所であると認識しているため、テーブルストレージに傾倒しています。古い.Netの人として、私たちはNoSqlスタイルのソリューションよりもインメモリキャッシュに精通しています。
Windows Azureキャッシングの問題:
- VMが別のサーバーに移動された場合(負荷分散またはその他の理由でMicrosoftによって)、メモリ内キャッシュはそのまま移動されますか?
- 変更をクラウドに公開するたびに、既存のメモリ内キャッシュが消去されると推測しています。
- ユーザーが変更を加えたときにキャッシュデータに変更を加えることはめったにありませんが、数秒以内に複数の更新を行う可能性があり、特にトラフィックが増加している場合に、Webロールを実行している複数のノードにまたがるキャッシュでこれがどのように機能するかはわかりません。(これはおそらくテーブルストレージにも関係します!)
- テーブルストレージは、デバッグが容易になるように見えます
WindowsAzureキャッシングの利点
- やや速い