Resumen de tipos y estrategias de caducidad de datos
NCache admite la invalidación de datos basada en el tiempo donde puede especificar el tiempo o el intervalo para que caduquen los datos de la caché. La invalidación de datos basada en el tiempo se aplica en situaciones en las que se puede determinar la frecuencia del cambio de datos. Por ejemplo, es posible que la información de la región no se actualice con frecuencia, por lo que puede utilizar una caducidad basada en el tiempo para invalidar dichos datos.
Además, la caducidad de los datos obsoletos del caché da como resultado que se proporcionen al cliente datos relevantes y actualizados. Por ejemplo, las unidades disponibles para un determinado producto pueden cambiarse en la base de datos, pero no actualizarse en la caché. Por lo tanto, la caducidad de dichos datos del caché después de un cierto período de tiempo dará como resultado que se carguen datos nuevos en el caché en la siguiente solicitud del cliente.
Otro uso de la caducidad de los datos es el mantenimiento de sesiones. Si una sesión ha estado inactiva durante un cierto período de tiempo, se puede eliminar de la caché porque está inactiva.
Se agrega un valor de vencimiento a los elementos de la caché. NCache mantiene un índice de elementos con vencimiento basado en el tiempo. Un subproceso dedicado comprueba periódicamente los datos de la caché en busca de estos elementos caducados después de un intervalo de tiempo configurable llamado Intervalo de limpieza. De forma predeterminada, su valor es 15 segundos, lo que significa que el tiempo máximo que puede tardar un elemento en eliminarse del caché es (tiempo de caducidad + intervalo de limpieza + tiempo que tarda la actividad de limpieza). Por lo tanto, debes seleccionar este intervalo cuidadosamente de acuerdo con el tiempo de vencimiento de tus datos.
Caducidad absoluta
Puede agregar un elemento al caché con Caducidad Absoluta especificando la fecha y hora exactas en las que el elemento debe invalidarse. Cuando transcurra este tiempo, el elemento se eliminará del caché. Aquí, NCache mantiene la hora UTC para la caducidad absoluta en los servidores de caché, lo que facilita el caso en que los clientes y los servidores de caché se encuentran en diferentes zonas horarias. Esto significa que la hora de vencimiento especificada por los clientes (en cualquier zona horaria) se convertirá a UTC en el servidor de caché y el elemento caducará en la fecha y hora exactas especificadas por los clientes. Puede especificar el tiempo de vencimiento, desde segundos hasta días y meses.
Note
Esta característica también está disponible en NCache Professional.
Sin embargo, tenga en cuenta que el elemento se eliminará cuando caduque en el siguiente intervalo de limpieza de caché. Por ejemplo, si especifica una caducidad de 10 segundos con un elemento y el intervalo de limpieza de caché está configurado en 15 segundos, el elemento se eliminará dentro de un período de tiempo de 15 a 25 segundos.
Caducidad móvil
En este vencimiento, desea que el caché conserve los datos mientras los utilice la aplicación y elimine cualquier dato que no se haya utilizado durante un período de tiempo específico. Cada vez que el usuario accede a los datos de la caché con Caducidad deslizante, su vida útil se extenderá según el intervalo de caducidad específico; por ejemplo, un elemento con Caducidad deslizante de 30 segundos se eliminará de la caché si el usuario no accede a él durante al menos 30 segundos. . Sin embargo, con cada acceso, el intervalo de caducidad del elemento se restablecerá a 30 segundos, extendiendo su vida en el caché en 30 segundos.
Note
Esta característica también está disponible en NCache Professional.
Por ejemplo, los datos de la sesión se pueden almacenar en la memoria caché mientras la sesión esté activa. Para este tipo de datos, puede especificar una caducidad deslizante, digamos 15 minutos. Por lo tanto, si la actividad ocurre dentro del intervalo de tiempo especificado, el intervalo de vencimiento de la sesión se restablecerá a 15 minutos en la caché.
De forma similar a la caducidad absoluta, los elementos de la caché con caducidad deslizante se eliminan en el intervalo de limpieza de la caché.
advertencia
Si no se proporciona ninguna caducidad con el elemento de caché, residirá en el caché hasta su eliminación explícita. Esto puede saturar el almacenamiento en caché.
También consulte Políticas de desalojo que es otra característica de NCache para controlar el uso del almacenamiento en caché.
Vencimientos predeterminados
NCache también admite vencimientos predeterminados que pueden ayudarlo a configurar sus estrategias de invalidación de datos con más flexibilidad. Los vencimientos predeterminados se configuran a través del NCache Centro de Gestión o config.ncconf, por lo que no es necesario cambiar el código si desea cambiar el valor de caducidad que se pasa a través de la API. Además, si la misma aplicación requiere varios valores de vencimiento, se pueden usar vencimientos predeterminados.
NCache proporciona los siguientes vencimientos predeterminados:
- Absoluto predeterminado
- Deslizamiento predeterminado
- Predeterminado Absoluto Más largo
- Deslizamiento predeterminado más largo
Todos los vencimientos predeterminados tienen un valor mínimo de 5 segundos.
Supongamos que Default Absolute está configurado con 5 segundos y Default Sliding Longer expiration está configurado con 10 segundos. un objeto de la Producto La clase se agrega al caché con Default Absolute y se agrega una sesión con una caducidad más larga deslizante predeterminada. Una vez que se agrega el objeto, desea cambiar el valor de vencimiento de ambos a 15 segundos. En lugar de volver a insertar los objetos con los nuevos valores de vencimiento, simplemente puede cambiar la configuración desde el NCache Centro de Gestión o config.ncconf, sin ningún cambio de código.
Existen múltiples escenarios donde la configuración de la política de vencimiento a través del NCache El Centro de gestión y la API se superpondrán y desencadenarán los siguientes comportamientos. Tenga en cuenta que el vencimiento no predeterminado se refiere al vencimiento absoluto y variable.
Caducidad predeterminada | Caducidad en llamada API | Comportamiento |
---|---|---|
Configurado | Vencimiento predeterminado | Vencimiento predeterminado |
Configurado | Caducidad no predeterminada | Caducidad no predeterminada |
Configurado | Ninguna | Vencimiento predeterminado |
no configurado | Vencimiento predeterminado | sin caducidad |
no configurado | Caducidad no predeterminada | Caducidad no predeterminada |
no configurado | Ninguna | sin caducidad |
Importante:
CacheItem
, el valor predeterminado de Caducidad absoluta y deslizante es NoAbsoluteExpiration y NoSlidingExpiration. Por lo tanto, si se configura la caducidad predeterminada pero no se configura ninguna caducidad en la API con CacheItem
, NO se producirá ninguna caducidad ya que su valor de Caducidad predeterminada sobrescribe la Caducidad predeterminada configurada.
Caducidad en entorno agrupado
En un entorno de caché en clúster en el que intervienen varios servidores de almacenamiento en caché, la caducidad se gestiona de forma diferente en varios NCache topologías.
- En Espejo topología, el nodo activo realizará la caducidad y lo sincronizará en el nodo pasivo.
- En Replicado caché, la caducidad la realiza el nodo coordinador y la operación luego se sincronizará con los otros nodos agrupados.
- En Particionado topología, ya que los datos se distribuyen en nodos separados, cada nodo es responsable de la caducidad de su propio elemento.
- Réplica de partición topología, la caducidad se realizará en los nodos activos y se propagará a sus respectivas réplicas.
- Caché del cliente utilizará la misma caducidad habilitada en la memoria caché en clúster. Sin embargo, la caducidad deslizante se agrega como caducidad absoluta una vez que se sincroniza con la memoria caché, ya que provoca incoherencias si el valor se desliza en la memoria caché agrupada pero no en la memoria caché del cliente.
Vea también
Caducidad absoluta de datos en caché
Caducidad móvil
Desalojos