NCache es un caché distribuido en memoria extremadamente rápido y escalable para .NET que almacena en caché los datos de las aplicaciones para reducir los costosos viajes a la base de datos. Puedes usar NCache para eliminar los cuellos de botella de rendimiento asociados con el almacenamiento de datos y la escalabilidad de la base de datos.
La forma más común de utilizar dicho caché es permitir que su aplicación lea datos de su base de datos/fuente de datos y luego los almacene en caché. Después de lo cual, cuando su aplicación actualiza estos datos en su base de datos, también actualiza el caché para garantizar que esté sincronizado con la base de datos.
Además, NCache proporciona otro mecanismo muy poderoso para leer y escribir datos llamado Proveedores de fuente de datos (lectura/escritura/escritura detrás) para permitir NCache leer y escribir datos de su base de datos.
Hay tres formas en las que puedes usar NCache en este contexto:
A continuación se detallan algunos beneficios de utilizar lectura, escritura y escritura retrasada en NCache.
A continuación se muestran algunos aspectos destacados de la lectura, la escritura y la escritura retrasada en NCache.
Desarrollar código para controladores de lectura y escritura es un proceso sencillo. A continuación se muestran ejemplos 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;
}