NCache é um cache distribuído na memória para .NET extremamente rápido e escalonável que armazena dados de aplicativos em cache para reduzir viagens dispendiosas ao banco de dados. Você pode usar NCache para remover gargalos de desempenho associados ao armazenamento de dados e à escalabilidade do banco de dados.
A maneira mais comum de usar esse cache é permitir que seu aplicativo leia dados do seu banco de dados/fonte de dados e, em seguida, armazene-os em cache. Depois disso, quando seu aplicativo atualizar esses dados em seu banco de dados, ele também atualizará o cache para garantir que ele esteja sincronizado com o banco de dados.
Além disso, NCache fornece outro mecanismo muito poderoso para leitura e gravação de dados chamado Provedores de fonte de dados (leitura/gravação/gravação por trás) para permitir NCache ler e gravar dados do seu banco de dados.
Existem três maneiras de usar NCache nesse contexto:
Aqui estão alguns benefícios de usar Read-through, Write-through e Write-behind em NCache.
Aqui estão alguns destaques de Read-through, Write-through e Write-behind em NCache.
Desenvolver código para manipuladores de leitura e gravação é um processo simples. Abaixo estão exemplos de interfaces para ambos.
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;
}