Utilisation du cache de lecture
Cette section explique l'utilisation du fournisseur de cache Read-Through après sa configuration et son déploiement. NCache Fournit le Alachisoft.NCache.Runtime.Caching.ReadThruOptions
classe pour spécifier les options Read-Thru dans l'API. Le ReadThruOptions
la classe contient enum ReadMode
, qui peut être soit ReadThru
or ReadThruForced
, expliqué ci-dessous.
ReadThru
vérifie l'existence d'un élément dans le cache et s'il n'est pas trouvé, récupère les données de la source de données.ReadThruForced
récupère l'élément à partir d'une source de données, indépendamment de son existence dans le cache ou non.
Plusieurs fournisseurs de cache en lecture continue peuvent être configurés via NCache. Le fournisseur de cache Read-Through par défaut sera appelé si un nom de fournisseur spécifique n'est pas mentionné via l'API. Vous pouvez également utiliser des fournisseurs autres que ceux par défaut en utilisant des surcharges d'API spécifiques au fournisseur.
Important
Pour Java, avant de déployer vos fichiers JAR, vous devez vous assurer que :
- JDK 17 est installé.
- La variable d'environnement pour Java est définie.
Conditions préalables à l'utilisation du cache de lecture
- Pour en savoir plus sur les prérequis standard requis pour travailler avec tous NCache fonctionnalités côté serveur, veuillez vous référer à la page donnée sur Prérequis de l'API côté serveur.
- Pour plus de détails sur l'API, reportez-vous à : CacheItem, Obtenez, Mode lecture, Obtenir en masse, CacheConnectionOptionsCacheConnectionOptions, Options de lecture.
Utilisation de la lecture directe avec l'opération Get
L'exemple suivant récupère un élément avec Read-Through activé, correspondant à la clé spécifiée à l'aide de la propriété Get
méthode.
// Pre-condition: Cache is already connected
// Specify the key of the item
string key = $"Product:{product.ProductID}";
// Specify the readThruOptions for read through operations
var readThruOptions = new ReadThruOptions();
readThruOptions.Mode = ReadMode.ReadThru;
// Retrieve the data of the corresponding item with read thru enabled
Product data = cache.Get<Product>(key, readThruOptions);
if (data != null)
{
// Perform operations accordingly
}
Notes
Pour garantir la sécurité de l'opération, il est recommandé de gérer toutes les exceptions potentielles au sein de votre application, comme expliqué dans Gestion des échecs.
Utilisation de la lecture forcée
NCache fournit l'option de lecture forcée, à travers laquelle NCache récupère les données de la source de données avec force. Cela signifie que les données ne seront pas vérifiées dans le cache et seront directement récupérées à partir de la source de données. Vous pouvez activer la lecture immédiate forcée en spécifiant le ReadMode
as ReadThruForced
.
L'exemple suivant extrait un élément du cache à l'aide de la propriété ReadThruForced
option en activant de force la lecture directe sur celle-ci.
// Specify the key of the item
string key = $"Product:{product.ProductID}";
// Specify the readThruOptions for read through operations
var readThruOptions = new ReadThruOptions();
readThruOptions.Mode = ReadMode.ReadThruForced;
// Retrieve the data of the corresponding item with read thru enabled
Product data = cache.Get<Product>(key, readThruOptions);
if (data != null)
{
// Perform operations accordingly
}
Utilisation de la lecture immédiate avec des opérations en bloc
L'exemple suivant récupère un dictionnaire de produits avec Read-Through activé, correspondant aux clés spécifiées à l'aide de la propriété GetBulk
méthode.
Conseil
Pour une meilleure compréhension de ces opérations, passez en revue Opérations en vrac.
// Create a new array of keys
String[] keys = new string[];
// Specify the readThruOptions for read through operations
var readThruOptions = new ReadThruOptions();
readThruOptions.Mode = ReadMode.ReadThru;
// Retrieve the dictionary of Products with corresponding products
IDictionary<string, Product> retrievedItems = cache.GetBulk<Product>(keys, readThruOptions);
// IDictionary contains cached keys and values
Utilisation de la lecture directe avec CacheItem
L'exemple suivant récupère un CacheItem
avec Read-Through activé, correspondant à la clé spécifiée.
// Specify the key of the item
string key = $"Product:{product.ProductID}";
// Specify the readThruOptions for read through operations
var readThruOptions = new ReadThruOptions();
readThruOptions.Mode = ReadMode.ReadThru;
// Retrieve the data of the corresponding item with read thru enabled
CacheItem data = cache.GetCacheItem(key, readThruOptions);
if (data != null)
{
// Perform operations accordingly
}
Utilisation de la lecture immédiate avec des structures de données
L'exemple suivant récupère un compteur, une liste, une file d'attente, un HashSet et un dictionnaire avec la lecture continue activée, correspondant à la clé spécifiée.
// Specify the key of the item
string key = $"Product:{product.ProductID}";
// Specify the readThruOptions for read through operations
var readThruOptions = new ReadThruOptions();
readThruOptions.Mode = ReadMode.ReadThru;
switch(mainMenu)
{
case mainMenu.GetDistributedCounter:
// Retrieve the count of the corresponding item with read thru enabled
ICounter counter = cache.DataTypeManager.GetCounter(key, readThruOptions);
break;
case mainMenu.GetDistributedDictionary:
// Retrieve dictionary of the corresponding item with read thru enabled
IDistributedDictionary<string, object> distributedDictionary = cache.DataTypeManager.GetDictionary<string, object>(key,readThruOptions);
break;
case mainMenu.GetDistributedList:
// Retrieve the list of the corresponding item with read thru enabled
IDistributedList<object> distributedList = cache.DataTypeManager.GetList<object>(key, readThruOptions);
break;
case mainMenu.GetDistributedQueue:
// Retrieve the queue of the corresponding item with read thru enabled
IDistributedQueue<object> distributedQueue = cache.DataTypeManager.GetQueue<object>(key, readThruOptions);
break;
case mainMenu.GetDistributedHashSet:
// Retrieve the HashSet of the corresponding item with read thru enabled
IDistributedHashSet<int> distributedHashSet = cache.DataTypeManager.GetHashSet<int>(key, readThruOptions);
break;
}
Configurer le fournisseur de lecture par défaut
Vous pouvez spécifier le fournisseur par défaut via le NCache Centre de Gestion ou via le client.ncconf déposer. Si le nom du fournisseur n'est pas fourni à la fois dans l'API et client.ncconf, le fournisseur par défaut sera automatiquement utilisé.
<cache id="demoCache" default-readthru-provider="defaultProviderName" client-cache-id="" client-cache-syncmode="optimistic" default-writethru-provider="" load-balance="True">
...
</cache>
CacheConnectionOptions
peut également être utilisé pour spécifier les fournisseurs. NCache fournit des erreurs dans les journaux de cache en cas d'exception lors du chargement des assemblys fournis.
Ressources additionnelles
NCache fournit un exemple d'application pour la lecture continue sur GitHub.
Voir aussi
.RAPPORTER: Alachisoft.NCache.Durée espace de noms.
Java: com.alachisoft.ncache.runtime.datasourceprovider espace de noms.