Leer el uso de la caché
Esta sección explica el uso del proveedor de caché de lectura después de configurarlo e implementarlo. NCache proporciona Alachisoft.NCache.Runtime.Caching.ReadThruOptions
clase para especificar opciones de lectura directa en API. El ReadThruOptions
la clase contiene enumeración ReadMode
, que puede ser ReadThru
or ReadThruForced
, explicado a continuación.
ReadThru
comprueba la existencia de un elemento en la memoria caché y, si no lo encuentra, recupera los datos de la fuente de datos.ReadThruForced
recupera el elemento de una fuente de datos, independientemente de si existe o no en la caché.
Se pueden configurar múltiples proveedores de caché de lectura directa a través de NCache. Se llamará al proveedor de caché de lectura predeterminada si no se menciona un nombre de proveedor específico a través de la API. También puede utilizar proveedores distintos del predeterminado mediante sobrecargas de API específicas del proveedor.
Importante:
Para Java, antes de implementar sus archivos JAR, debe asegurarse de que:
- JDK 17 está instalado.
- La variable de entorno para Java está configurada.
Requisitos previos para utilizar la caché de lectura directa
- Para obtener información sobre los requisitos previos estándar necesarios para trabajar con todos NCache funciones del lado del servidor, consulte la página dada en Requisitos previos de la API del lado del servidor.
- Para obtener detalles de la API, consulte: Artículo de caché, Recibe, Modo de lectura, Obtener a granel, Opciones de conexión de caché, Opciones de lectura.
Uso de la lectura completa con la operación Get
El siguiente ejemplo recupera un elemento con Read-Through habilitado, correspondiente a la clave especificada usando el Get
método.
// 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
}
Note
Para garantizar que la operación sea a prueba de fallas, se recomienda manejar cualquier posible excepción dentro de su aplicación, como se explica en Manejo de fallas.
Uso de lectura forzada
NCache proporciona la opción de lectura directa forzada, a través de la cual NCache recupera los datos de la fuente de datos con fuerza. Significa que los datos no se verificarán en el caché y se obtendrán directamente de la fuente de datos. Puede habilitar la lectura completa forzada especificando el ReadMode
as ReadThruForced
.
El siguiente ejemplo obtiene un elemento del caché usando el ReadThruForced
opción habilitando forzosamente Read-Through en él.
// 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
}
Uso de la lectura simultánea con operaciones masivas
El siguiente ejemplo recupera un diccionario de productos con Read-Through habilitado, correspondiente a las claves especificadas usando el GetBulk
método.
Consejo
Para una mejor comprensión de estas operaciones revise Operaciones masivas.
// 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
Uso de lectura completa con CacheItem
El siguiente ejemplo recupera un CacheItem
con Read-Through habilitado, correspondiente a la clave especificada.
// 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
}
Uso de la lectura directa con estructuras de datos
El siguiente ejemplo recupera un contador, una lista, una cola, un HashSet y un diccionario con la lectura directa habilitada, correspondiente a la clave especificada.
// 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;
}
Configurar proveedor de lectura simultánea predeterminado
Puede especificar el proveedor predeterminado a través del NCache Centro de Gestión o a través del cliente.ncconf archivo. Si el nombre del proveedor no se proporciona tanto en la API como en cliente.ncconf, entonces se usará automáticamente el proveedor predeterminado.
<cache id="demoCache" default-readthru-provider="defaultProviderName" client-cache-id="" client-cache-syncmode="optimistic" default-writethru-provider="" load-balance="True">
...
</cache>
CacheConnectionOptions
también se puede utilizar para especificar proveedores. NCache proporciona errores en los registros de caché en caso de una excepción durante la carga de los ensamblados proporcionados.
Recursos adicionales
NCache proporciona una aplicación de muestra para lectura completa en GitHub.
Vea también
.NETO: Alachisoft.NCache.Tiempo de ejecución espacio de nombres
Java: com.alachisoft.ncache.runtime.datasourceprovider espacio de nombres