Caducidad absoluta de datos en caché
NCache le permite configurar la Caducidad Absoluta con sus elementos de caché. Esto caducará los artículos en la fecha y hora exacta especificada por el cliente. La caducidad absoluta se puede especificar en elementos que se requieren durante un tiempo limitado en la caché. Por ejemplo, una empresa anuncia una venta flash durante 24 horas de determinados productos. Luego, estos artículos se pueden almacenar en caché con una caducidad absoluta de 24 horas, de modo que caduquen del caché tan pronto como finalice la venta.
Además, esto DateTime
el valor se convierte a Hora UTC para atender el caso en el que el servidor de caché y el cliente se encuentran en diferentes zonas horarias. Por lo tanto, los artículos caducarán en el momento exacto que haya especificado el usuario.
Requisitos previos
- Para obtener información sobre los requisitos previos estándar necesarios para trabajar con todos NCache características del lado del cliente, consulte la página proporcionada en Requisitos previos de la API del lado del cliente.
- Para obtener detalles de la API, consulte: Dolor, Artículo de caché, Atributos de elemento de caché, contiene, Contar, Vencimiento, recuadro, Actualizar atributos.
Añadir/Actualizar artículo con caducidad absoluta
Note
Esta característica también está disponible en NCache Professional.
Agrega/actualiza los elementos de caché para establecer la caducidad, utilizando el recuadro método.
CacheItem
es una clase personalizada proporcionada por NCache que se puede usar para agregar datos al caché y también le permite configurar metadatos adicionales asociados con un objeto de esta clase. Estos metadatos definen las propiedades del elemento como vencimiento, dependencias y más.
El siguiente ejemplo establece el valor de la Expiration
La propiedad de Caducidad absoluta de 5 minutos para un CacheItem lo agrega al caché si la clave no existe y actualiza el elemento si existe. Este CacheItem
luego se eliminará del caché después de 5 minutos.
Consejo
Puede monitorear/verificar el vencimiento a través de:
- Contador "Recuento de caché" en el NCache Monitorear or Contadores PerfMon.
- Usar
cache.Contains
una vez transcurrido el intervalo de vencimiento. - Usar
cache.Count
antes y después de especificar el vencimiento.
// Precondition: Cache is already connected
// Get product from database against given product ID
Product product = FetchProductFromDB(1001);
// Generate a unique cache key for this product
string key = $"Product:{product.ProductID}";
// Create a new CacheItem for this product
var cacheItem = new CacheItem(product);
// Set Expiration TimeSpan
var expiration = new Expiration(ExpirationType.Absolute, TimeSpan.FromMinutes(5));
cacheItem.Expiration = expiration;
// Add/Update item with expiration
cache.Insert(key, cacheItem);
Agregar/Actualizar artículo con vencimientos predeterminados configurados
Puede especificar la caducidad absoluta en la API utilizando el DefaultAbsolute
y DefaultAbsoluteLonger
valores configurados en el NCache Centro de Gestión o config.ncconf. Esto proporciona la flexibilidad de cambiar el valor externamente si es necesario, sin cambiar el código.
El siguiente código asocia la caducidad predeterminada configurada (DefaultAbsolute en este caso) con un elemento, lo agrega al caché si la clave no existe en la caché y actualiza el elemento con caducidad si la clave existe. Una vez transcurrido el tiempo configurado, el artículo caduca.
Importante:
Para habilitar la caducidad predeterminada, es obligatorio que lo habilite a través del NCache Centro de gestion or config.ncconf. Si pasa la API para > [!IMPORTANT] y no está configurada a través del NCache Centro de Gestión o config.ncconf, no funcionará.
// Precondition: Cache is already connected
// Get product from database against given product ID
Product product = FetchProductFromDB(1001);
// Generate a unique cache key for this product
string key = $"Product:{product.ProductID}";
// Create a cacheItem instance for product
var cacheItem = new CacheItem(product);
// Set Expiration type
var expiration = new Expiration(ExpirationType.DefaultAbsolute);
cacheItem.Expiration = expiration;
// Add/Update item into the cache with default expiration
CacheItemVersion version = cache.Insert(key,cacheItem);
Establecer vencimiento absoluto para artículo existente
Note
Esta característica también está disponible en NCache Professional.
NCache También proporciona la flexibilidad de establecer la caducidad absoluta para un elemento de caché existente sin tener que volver a insertarlo en el caché. Esto se hace a través del CacheItemAttribute
clase, que tiene el AbsoluteExpiration
propiedad que se va a establecer en el elemento de caché. Esto establece la fecha y la hora exactas en las que se debe invalidar el elemento de la memoria caché. Luego, el atributo se establece con la clave existente del elemento, utilizando el UpdateAttributes
método de ICache
.
El siguiente ejemplo establece la caducidad absoluta para un elemento que ya existe en la memoria caché sin ninguna caducidad establecida. Esto no requiere volver a agregar o insertar el elemento en el caché.
// Precondition: Cache is already connected
// Precondition: Item already exists in cache
string key = "Product:1001";
// Create a CacheItemAttribute for absolute expiration
// and set its value to 5 seconds
var attr = new CacheItemAttributes();
attr.AbsoluteExpiration = DateTime.Now.AddSeconds(5);
// Set Absolute Expiration of 5 seconds against existing key
cache.UpdateAttributes(key, attr);
Recursos adicionales
NCache proporciona una aplicación de muestra para Absolute Expiration en GitHub.
Vea también
.NETO: Alachisoft.NCache.Runtime.Caching espacio de nombres
Java: com.alachisoft.ncache.runtime.caching espacio de nombres
Nodo.js: Vencimiento clase.
Pitón: ncache.runtime.caching clase.