Vencimiento deslizante en caché
NCache le permite configurar la caducidad deslizante para conservar los datos de la caché mientras la aplicación los utilice y eliminar cualquier dato que no se haya utilizado durante un período de tiempo específico. Esto es particularmente útil para mantener sesiones, ya que cualquier sesión que haya estado inactiva durante un período específico se considera inactiva y la caché puede eliminarla.
La caducidad deslizante garantiza que si se accede a los datos dentro del intervalo de tiempo especificado, la vida útil del elemento de caché se ampliará en el valor del intervalo. Por ejemplo, se agrega una sesión con una expiración de 10 minutos. se accede a la sesión en el minuto 6, por lo que la vida de la sesión en el caché se extenderá otros 10 minutos.
Requisitos previos para utilizar la caducidad deslizante en la caché
- 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 móvil
Note
Esta característica también está disponible en NCache Professional.
Puede agregar/actualizar 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
propiedad a Caducidad deslizante de 5 minutos para un CacheItem
y lo agrega al caché si la clave no existe, y actualiza el elemento si existe. Este CacheItem se eliminará de la memoria 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.Sliding, 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 deslizante en la API utilizando el DefaultSliding
y DefaultSlidingLonger
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 (DefaultSliding 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. Si no se accede al artículo dentro del intervalo de tiempo configurado, el artículo caducará. De lo contrario, la vida útil del artículo se prolongará en el mismo intervalo de tiempo.
Importante:
Para habilitar la caducidad predeterminada, es obligatorio que lo habilite a través del NCache Centro de gestion o config.ncconf. Si pasa la API para el vencimiento predeterminado y no está configurada a través del NCache Centro de Gestión o config.ncconf, no funcionará.
// Pre-condition: 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 TimeSpan
var expiration = new Expiration(ExpirationType.DefaultSliding);
cacheItem.Expiration = expiration;
//Add/Update item into the cache with expiration
CacheItemVersion version = cache.Insert(key, cacheItem);
Recursos adicionales
NCache proporciona una aplicación de muestra para la caducidad móvil 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.