Expiração deslizante no cache
NCache permite configurar a Expiração Deslizante para reter os dados do cache enquanto eles estiverem sendo usados pelo aplicativo e remover quaisquer dados que não tenham sido usados por um período específico de tempo. Isto é particularmente útil na manutenção de sessões, pois qualquer sessão que esteja inativa por um período específico é considerada inativa e pode ser removida pelo cache.
A Expiração Deslizante garante que, se os dados forem acessados dentro do intervalo de tempo especificado, a vida útil do item de cache será estendida pelo valor do intervalo. Por exemplo, uma sessão é adicionada com expiração de 10 minutos. a sessão é acessada no 6º minuto, portanto a vida útil da sessão no cache será estendida por mais 10 minutos.
Pré-requisitos para usar expiração deslizante no cache
- Para aprender sobre os pré-requisitos padrão necessários para trabalhar com todos os NCache recursos do lado do cliente, consulte a página fornecida em Pré-requisitos da API do lado do cliente.
- Para obter detalhes da API, consulte: ICache, Item de cache, CacheItemAttributes, contém, Contar, Expiration, inserção, Atualizar atributos.
Adicionar/atualizar item com expiração deslizante
Note
Este recurso também está disponível em NCache Professional.
Você pode adicionar/atualizar os itens de cache para definir a expiração, usando o inserção método.
CacheItem
é uma classe personalizada fornecida por NCache que pode ser usado para adicionar dados ao cache e também permite definir metadados adicionais associados a um objeto desta classe. Esses metadados definem as propriedades do item, como expiração, dependências e muito mais.
O exemplo a seguir define o valor do Expiration
propriedade para Expiração Deslizante de 5 minutos para um CacheItem
e a adiciona ao cache se a chave não existir - e atualiza o item se existir. Este CacheItem será removido do cache após 5 minutos.
Dica
Você pode monitorar/verificar a expiração por meio de:
- Contador "Contagem de cache" no NCache Monitore or Contadores PerfMon.
- utilização
cache.Contains
após o intervalo de expiração ter decorrido. - utilização
cache.Count
antes e depois de especificar a expiração.
// 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);
Adicionar/atualizar item com expirações padrão configuradas
Você pode especificar a expiração deslizante na API usando o DefaultSliding
e DefaultSlidingLonger
valores configurados no NCache Centro de Gestão ou config.ncconf. Isto proporciona a flexibilidade de alterar o valor externamente, se necessário, sem alterar o código.
O código a seguir associa a expiração padrão configurada (DefaultSliding neste caso) a um item, adiciona-o ao cache se a chave não existir no cache e atualiza o item com a expiração se a chave existir. Se o item não for acessado dentro do intervalo de tempo configurado, o item irá expirar. Caso contrário, a vida útil do item será prolongada no mesmo intervalo de tempo.
importante
Para habilitar a Expiração Padrão, é obrigatório habilitá-la através do NCache Centro de Gerenciamento ou config.ncconf. Se você passar a API para expiração padrão e ela não estiver configurada por meio do NCache Centro de Gestão ou config.ncconf, isso não vai 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 adicionais
NCache fornece um aplicativo de amostra para expiração deslizante em GitHub.
Veja também
.INTERNET: Alachisoft.NCache.Runtime.Cache espaço para nome.
Java: com.alachisoft.ncache.runtime.caching espaço para nome.
Node.js: Expiration classe.
Pitão: ncache.runtime.caching classe.