NCache は、アプリケーション データをキャッシュして、高価なデータベース トリップを削減する、非常に高速でスケーラブルな .NET 用のインメモリ分散キャッシュです。 使用できます NCache データ ストレージとデータベースのスケーラビリティに関連するパフォーマンスのボトルネックを解消します。
このようなキャッシュを使用する最も一般的な方法は、アプリケーションでデータベース/データ ソースからデータを読み取り、それをキャッシュすることです。 その後、アプリケーションがデータベース内のこのデータを更新するときに、キャッシュも更新して、キャッシュがデータベースと同期していることを確認します。
また、 NCache データ ソース プロバイダー (リードスルー/ライトスルー/ライトビハインド) と呼ばれる、データを読み書きするための別の非常に強力なメカニズムを提供します。 NCache データベースからデータを読み書きします。
XNUMXつの使い方ができます NCache この文脈では:
ここでは、リードスルー、ライトスルー、ライトビハインドを使用する利点をいくつか示します。 NCache.
以下に、リードスルー、ライトスルー、ライトビハインドのハイライトをいくつか示します。 NCache.
リードスルー ハンドラーおよびライトスルー ハンドラーのコードの開発は簡単なプロセスです。 以下に両方のインターフェイスの例を示します。
public interface IReadThruProvider
{
void Init(IDictionary parameters, string cacheId);
ProviderCacheItem LoadFromSource(string key);
IDictionary<string, ProviderCacheItem> LoadFromSource(ICollection<string> keys);
ProviderDataTypeItem<IEnumerable> LoadDataTypeFromSource(string key, DistributedDataType dataType);
void Dispose();
}
public interface ReadThruProvider extends java.lang.AutoCloseable
{
void init(java.util.Map<java.lang.String,java.lang.String> parameters, java.lang.String cacheId) throws java.lang.Exception;
ProviderCacheItem loadFromSource(java.lang.String key) throws java.lang.Exception;
java.util.Map<java.lang.String,ProviderCacheItem> loadFromSource(java.util.Collection<java.lang.String> keys) throws java.lang.Exception;
ProviderDataStructureItem loadDataStructureFromSource(java.lang.String key, DistributedDataStructureType distributedDataStructureType) throws java.lang.Exception;
}
public interface IWriteThruProvider
{
void Init(IDictionary parameters, string cacheId);
OperationResult WriteToDataSource(WriteOperation operation);
ICollection<OperationResult> WriteToDataSource(ICollection<WriteOperation> operations);
ICollection<OperationResult> WriteToDataSource(ICollection<DataTypeWriteOperation> dataTypeWriteOperations);
void Dispose();
}
public interface WriteThruProvider extends java.lang.AutoCloseable
{
void init(java.util.Map<java.lang.String,java.lang.String> parameters, java.lang.String cacheId) throws java.lang.Exception;
OperationResult writeToDataSource(WriteOperation operation) throws java.lang.Exception;
java.util.Collection<OperationResult> writeToDataSource(java.util.Collection<WriteOperation> operations) throws java.lang.Exception;
java.util.Collection<OperationResult> writeDataStructureToDataSource(java.util.Collection<DataStructureWriteOperation< dataStructureWriteOperations) throws java.lang.Exception;
}