Remover dados do cache
NCache fornece uma Remove' and a
Método Delete` para a remoção de um objeto do cache. A diferença entre esses métodos é declarada abaixo:
Delete
retorna void após a exclusão do item do cache.Remove
exclui os dados do cache e retorna o item excluído.
Escolha Delete/Remove
Chamadas de API, se uma fonte de apoio estiver configurada e o Write-through estiver habilitado, todas as chaves passadas para o cache por meio da API serão primeiro examinadas e excluídas do cache e, independentemente do mapeamento de chave, a chamada será encaminhada para a fonte de apoio.
Pré-requisitos
- Adicione as seguintes dependências do Maven em seu pom.xml arquivo:
<dependency>
<groupId>com.alachisoft.ncache</groupId>
<!--for NCache Enterprise Edition-->
<artifactId>ncache-client</artifactId>
<!--for NCache Professional Edition-->
<artifactId>ncache-professional-client</artifactId>
<version>x.x.x</version>
</dependency>
- Importe os seguintes pacotes em seu aplicativo:
import javax.cache.CacheManager;
import javax.cache.Caching;
import javax.cache.spi.CachingProvider;
- Certifique-se de que os dados sejam serializados ou registrados com NCache Formato de serialização compacto.
- Certifique-se de que o cache esteja em execução.
Usando o método de remoção
A Remove
método remove a chave do cache e retorna o objeto removido para o aplicativo, onde NCacheO método de remoção do provedor de API JCache do JCache se comporta de acordo com as especificações do JCache.
String key = "Product:1001";
Product product = null;
// False is returned if key does not exist in cache
Boolean result = cache.remove(key);
if (result != true)
{
//Deleted.
}
else
{
//Failed.
}
Usando o método de exclusão
A Delete
O método exclui a chave do cache. Você precisará obter NCache Instância de cache da API para realizar esta operação.
// Specify the key to be deleted
String key = "Product:1001";
// Delete the key from the cache
cache.delete(key);
Remover dados em massa do cache
Assim como a operação de remoção atômica, removeAll
também retorna itens removidos. Aqui os itens removidos são retornados na forma de HashMap. No entanto, NCacheAPI's JCache removeAll
O método também pode ser usado para excluir itens em massa, que se comportam como documentos do Oracle.
Para ambos, o atômico e o volume Delete/Remove
Chamadas de API, se uma fonte de apoio estiver configurada e o Write-Through estiver ativado, todas as chaves passadas para o cache por meio da API serão primeiro verificadas e excluídas do cache e, independentemente do mapeamento de chave, a chamada será encaminhada para o fonte de apoio.
Product product1 = null, product2 = null;
String[] keys = {"Product:1001", "Product:1002"};
CacheItem[] items = new CacheItem[2];
items[0] = new CacheItem(product1);
items[1] = new CacheItem(product2);
HashMap map = new HashMap();
for (int i = 0; i < 2; i++)
{
map.put(keys[i], items[i]);
}
jCache.removeAll(map.keySet());
Remover itens do cache de forma assíncrona
NCache fornece o AsyncItemRemovedCallback
interface a ser usada para receber notificação após a conclusão da remoção do item. Adicione o seguinte pacote ao seu aplicativo para utilizar esta API.
String key = "Product:1001";
EventListener listener = new EventListener();
cache.removeAsync(key, (AsyncItemRemovedCallback) listener, DSWriteOption.None, null);
Crie um retorno de chamada para registrar os eventos dos itens removidos do cache de forma assíncrona.
public class EventListener implements AsyncItemRemovedCallback
{
@Override
public void asyncItemRemoved(String string, Object o)
{
if(o.toString().equals("Success"))
{
// do something
}
if(o.toString().equals("Failure"))
{
// do something
}
if(o instanceof Exception)
{
// do something
}
}
}
Veja também
Inicializar cache
Adicionar/atualizar no cache
Limpar Cache
Cache de hibernação
NCache Módulo de sessão Java