4

Web サービスの開発を計画しています。メモリ キャッシュで使用する必要があります。.NET で使用できるさまざまなキャッシュ フレームワークを調べます。Microsoft Enterprise Library Cache ブロックを使用し、分散環境用の NCache も評価しました。

私の中心的な要件は、キャッシュされたデータの信頼性です。ワーカー プロセスが再起動された場合に備えて、永続化のために Enterprise Lib Cache ブロック DB データ ストアを使用することを考えていました。

オプションはありますか??

4

5 に答える 5

5

GigaSpaces XAP.NET をチェックアウトできます。GigaSpaces XAP.NETは、他の多くのものの間でキャッシュとして機能する、完全に分散されたメモリ内トランザクション データ グリッドです。また、分散キャッシュとともに分散方式でアプリケーションをデプロイできる実際のアプリケーション サーバーにすることもできます。これは、可用性が高く、自己修復および自己管理グリッドであり、オンデマンドでスケールアウトおよびスケールインできます。

免責事項 - 私は GigaSpaces で働いています。

于 2012-09-10T09:20:09.373 に答える
4

キャッシュは揮発性のデータストアです。キャッシュが利用できないことを期待するようにソフトウェアを作成する必要があります。例えば

public DtoThing GetSomeData(string parameters)
{
   if (<check cache for data> == <not there>)
     return <get data from persistent store>
   else
     return <get data from cache>
}

データベースをキャッシュのバッキング ストアとして使用する場合、基本的には、キャッシュを使用することのすべての利点を犠牲にしているだけです。キャッシュが信頼できるものである必要があると言うとき、それは更新が一貫している必要があるということですか、それともデータが常にキャッシュにある必要があるということですか? 前者の場合、データを更新するためのパスが 1 つだけになるようにソフトウェアを作成し、そのパスが永続的なキャッシュへの書き込みを正常に実行したときにキャッシュを無効にすることができるようにソフトウェアを作成している限り、それが確実に発生することを確認するのは簡単です。データストア。

于 2010-03-04T18:09:58.150 に答える
3

Microsoft の Enterprise Library Cache Block を使用した経験があり、うまく機能しました。EntLib 構成は少し冗長になる場合がありますが、これで問題は解決します。何か他のものを探している特別な理由はありますか?

于 2010-03-04T17:33:17.670 に答える
1

カップルが頭に浮かぶ:

1)Memcached

2)エンタープライズライブラリキャッシングアプリケーションブロック

于 2010-03-04T17:40:18.350 に答える