NCache ist ein extrem schneller und skalierbarer In-Memory Distributed Cache für .NET, der Anwendungsdaten zwischenspeichert, um teure Datenbankfahrten zu reduzieren. Sie können verwenden NCache um Leistungsengpässe im Zusammenhang mit der Datenspeicherung und der Skalierbarkeit Ihrer Datenbank zu beseitigen.
Die häufigste Art, einen solchen Cache zu verwenden, besteht darin, Ihre Anwendung Daten aus Ihrer Datenbank/Datenquelle lesen zu lassen und sie dann zwischenzuspeichern. Wenn Ihre Anwendung anschließend diese Daten in Ihrer Datenbank aktualisiert, aktualisiert sie auch den Cache, um sicherzustellen, dass der Cache mit der Datenbank synchronisiert ist.
Außerdem, NCache Bietet einen weiteren sehr leistungsstarken Mechanismus zum Lesen und Schreiben von Daten namens Data Source Providers (Read-through/Write-through/Write-behind). NCache Daten aus Ihrer Datenbank lesen und schreiben.
Es gibt drei Möglichkeiten, die Sie verwenden können NCache in diesem Kontext:
Hier sind einige Vorteile der Verwendung von Read-through, Write-through und Write-behind in NCache.
Hier sind einige Highlights von Read-through, Write-through und Write-behind in NCache.
Die Entwicklung von Code für Read-through- und Write-through-Handler ist ein unkomplizierter Prozess. Nachfolgend finden Sie Beispiele für Schnittstellen für beide.
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;
}