2

私は AppFabric にかなり慣れていないので、理解しようとしているのは、データを分散キャッシュとローカル キャッシュに入れることを規定する方法です。

構成に基づいてこれを行っている投稿hereを読みました。私は XML 構成を使用していませんが、プログラムで構成を使用してオブジェクトを作成しています。私は次のコードで遊んでいます:-

// Declare array for cache host(s).

List<DataCacheServerEndpoint> servers = new List<DataCacheServerEndpoint>();
servers.Add(new DataCacheServerEndpoint("SERVER1", 10023));
servers.Add(new DataCacheServerEndpoint("SERVER2", 10023));
servers.Add(new DataCacheServerEndpoint("SERVER3", 10023));

DataCacheLocalCacheProperties localCacheConfig;
TimeSpan localTimeout = new TimeSpan(0, 5, 0);

localCacheConfig = new DataCacheLocalCacheProperties(10000, localTimeout, DataCacheLocalCacheInvalidationPolicy.TimeoutBased);


// Setup the DataCacheFactory configuration.
DataCacheFactoryConfiguration factoryConfig = new DataCacheFactoryConfiguration();
factoryConfig.Servers = servers;
factoryConfig.SecurityProperties = new DataCacheSecurity(DataCacheSecurityMode.None, DataCacheProtectionLevel.None);

factoryConfig.LocalCacheProperties = localCacheConfig;

DataCacheFactory factory = DataCacheFactoryExtensions.Create(factoryConfig);
DataCache dataCache = factory.GetCache("MyCache");

dataCache.Put("myKey", "MyValue");

ローカル キャッシュ構成を factoryConfig オブジェクトに追加したため、キャッシュされたアイテムがローカル キャッシュと分散キャッシュに自動的に追加されると想定するのは正しいですか?

したがって、アイテムを分散キャッシュにのみキャッシュしたい場合は、ローカル キャッシュ構成を factoryConfig オブジェクトに追加するだけでよいのでしょうか?

それとも、キャッシュごとに 1 つずつ、2 つの個別のファクトリ構成オブジェクトが必要ですか?

4

1 に答える 1

4

ここで、ローカル キャッシュが有効になっている場合、オブジェクトがローカル キャッシュに格納されることがわかります。

ローカル キャッシュが有効な場合、キャッシュ クライアントはオブジェクトへの参照をローカルに保存します。

ローカル キャッシュを有効にする」手順は、これまで行ってきたとおりです。基本的には、を使用するだけです(ただし、代わりにapp.config 設定DataCacheLocalCachePropertiesを使用してローカル キャッシュを有効にすることもできます)。

つまり、あなたが言うとおりです。ローカルを使用せずに分散キャッシュのみを使用し、使用しない から取得したオブジェクトDataCache使用します。DataCacheFactoryDataCacheLocalCacheProperties


また、構成されたポリシーに応じて、ローカル キャッシュ内のアイテムが削除される可能性があることにも注意してください。

ローカル キャッシュ内のオブジェクトの有効期間は、ローカル キャッシュ内のオブジェクトの最大数や無効化ポリシーなど、いくつかの要因に依存します。

于 2012-11-13T18:28:07.670 に答える