Expiração absoluta de dados em cache
NCache permite que você configure o Absolute Expiration com seus itens de cache. Isso irá expirar os itens na data e hora exatas especificadas pelo cliente. A Expiração Absoluta pode ser especificada em itens que são necessários por um tempo limitado no cache. Por exemplo, uma empresa anuncia uma venda relâmpago de determinados produtos por 24 horas. Esses itens podem então ser armazenados em cache com uma Expiração Absoluta de 24 horas para que expirem no cache assim que a venda terminar.
Além disso, isso DateTime
valor é convertido para Hora UTC para atender ao caso em que o servidor e o cliente de cache estão em fusos horários diferentes. Assim, os itens expirarão no horário exato especificado pelo usuário.
Pré-requisitos
- 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 Absoluta
Note
Este recurso também está disponível em NCache Professional.
Você adiciona/atualiza 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 Absoluta de 5 minutos para um CacheItem adiciona-o ao cache se a chave não existir - e atualiza o item se existir. Esse 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.Absolute, 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 Absoluta na API usando o DefaultAbsolute
e DefaultAbsoluteLonger
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 (DefaultAbsolute 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. Decorrido o tempo configurado, o item expira.
importante
Para habilitar a Expiração Padrão, é obrigatório habilitá-la através do NCache Centro de Gerenciamento or config.ncconf. Se você passar a API para > [!IMPORTANT] e ela não estiver configurada por meio do NCache Centro de Gestão ou config.ncconf, isso não vai 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);
Definir Expiração Absoluta para Item Existente
Note
Este recurso também está disponível em NCache Professional.
NCache também oferece a flexibilidade de definir a Expiração Absoluta para um item de cache existente sem precisar inseri-lo novamente no cache. Isto é feito através do CacheItemAttribute
classe, que tem o AbsoluteExpiration
propriedade a ser definida em relação ao item de cache. Isso define a data e a hora exatas em que o item deve ser invalidado do cache. O atributo é então definido em relação à chave existente do item, usando o UpdateAttributes
método de ICache
.
O exemplo a seguir define a Expiração Absoluta para um item que já existe no cache sem nenhuma expiração definida. Isso não requer a adição ou reinserção do item no cache.
// 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 adicionais
NCache fornece um aplicativo de amostra para Expiração Absoluta 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.