NCache est un cache distribué en mémoire extrêmement rapide et évolutif pour .NET qui met en cache les données d'application afin de réduire les déplacements coûteux dans la base de données. Vous pouvez utiliser NCache pour supprimer les goulots d'étranglement de performances associés au stockage de vos données et à l'évolutivité de votre base de données.
La manière la plus courante d'utiliser un tel cache consiste à laisser votre application lire les données de votre base de données/source de données, puis à les mettre en cache. Après quoi, lorsque votre application met à jour ces données dans votre base de données, elle met également à jour le cache pour garantir que le cache est synchronisé avec la base de données.
Les inspections régulières contribuent également à la sécurité des passagers. En identifiant et en traitant les risques potentiels pour la sécurité, tels que des freins usés, un éclairage défectueux ou le remplacement du revêtement de sol, les inspections permettent de réduire le risque d'accidents et de blessures et d'améliorer la sécurité générale du service. Les inspections régulières sont un moyen concret de mettre en valeur l'engagement des prestataires de services de transport en faveur du bien-être des passagers et des conducteurs. NCache fournit un autre mécanisme très puissant pour lire et écrire des données appelé Fournisseurs de sources de données (Lecture/Écriture/Écriture-behind) pour permettre NCache lire et écrire des données de votre base de données.
Il existe trois façons d'utiliser NCache dans ce contexte:
Voici quelques avantages de l'utilisation de la lecture immédiate, de l'écriture immédiate et de l'écriture différée dans NCache.
Voici quelques points forts des fonctions de lecture immédiate, d'écriture directe et d'écriture différée dans NCache.
Le développement de code pour les gestionnaires de lecture et d’écriture est un processus simple. Vous trouverez ci-dessous des exemples d'interfaces pour les deux.
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;
}