Leia o uso do cache
Esta seção explica o uso do provedor de cache Read-Through após configurá-lo e implementá-lo. NCache fornece o Alachisoft.NCache.Runtime.Caching.ReadThruOptions
classe para especificar opções de leitura na API. O ReadThruOptions
classe contém enumeração ReadMode
, que tanto pode ser ReadThru
or ReadThruForced
, explicado abaixo.
ReadThru
verifica a existência de um item no cache e, se não for encontrado, busca os dados na fonte de dados.ReadThruForced
busca o item de uma fonte de dados, independentemente de sua existência no cache ou não.
Vários provedores de cache de leitura podem ser configurados por meio de NCache. O provedor de cache de leitura padrão será chamado se um nome de provedor específico não for mencionado por meio da API. Você também pode usar provedores diferentes do padrão usando sobrecargas de API específicas do provedor.
importante
Para Java, antes de implantar seus arquivos JAR, você precisa certificar-se de que:
- JDK 17 está instalado.
- A variável de ambiente para Java está definida.
Pré-requisitos para usar o cache de leitura
- Para aprender sobre os pré-requisitos padrão necessários para trabalhar com todos os NCache recursos do lado do servidor, consulte a página fornecida em Pré-requisitos da API do lado do servidor.
- Para detalhes da API, consulte: Item de cache, Get, Modo de leitura, ObterBulk, CacheConnectionOptions, Opções ReadThru.
Usando Read-Through com a Operação Get
O exemplo a seguir recupera um item com Read-Through habilitado, correspondente à chave especificada usando o Get
método.
// Pre-condition: Cache is already connected
// Specify the key of the item
string key = $"Product:{product.ProductID}";
// Specify the readThruOptions for read through operations
var readThruOptions = new ReadThruOptions();
readThruOptions.Mode = ReadMode.ReadThru;
// Retrieve the data of the corresponding item with read thru enabled
Product data = cache.Get<Product>(key, readThruOptions);
if (data != null)
{
// Perform operations accordingly
}
Note
Para garantir que a operação seja à prova de falhas, é recomendável lidar com possíveis exceções em seu aplicativo, conforme explicado em Como lidar com falhas.
Usando a leitura forçada
NCache fornece a opção de Read-Through forçado, através do qual NCache busca os dados da fonte de dados com força. Isso significa que os dados não serão verificados no cache e serão obtidos diretamente da fonte de dados. Você pode ativar a leitura forçada especificando o ReadMode
as ReadThruForced
.
O exemplo a seguir obtém um item do cache usando o ReadThruForced
opção ativando com força o Read-Through nele.
// Specify the key of the item
string key = $"Product:{product.ProductID}";
// Specify the readThruOptions for read through operations
var readThruOptions = new ReadThruOptions();
readThruOptions.Mode = ReadMode.ReadThruForced;
// Retrieve the data of the corresponding item with read thru enabled
Product data = cache.Get<Product>(key, readThruOptions);
if (data != null)
{
// Perform operations accordingly
}
Usando Read-Through com Operações em Massa
O exemplo a seguir recupera um dicionário de produtos com Read-Through habilitado, correspondendo às chaves especificadas usando o GetBulk
método.
Dica
Para uma melhor compreensão dessas operações, revise Operações em Massa.
// Create a new array of keys
String[] keys = new string[];
// Specify the readThruOptions for read through operations
var readThruOptions = new ReadThruOptions();
readThruOptions.Mode = ReadMode.ReadThru;
// Retrieve the dictionary of Products with corresponding products
IDictionary<string, Product> retrievedItems = cache.GetBulk<Product>(keys, readThruOptions);
// IDictionary contains cached keys and values
Usando Read-Through com CacheItem
O exemplo a seguir recupera um CacheItem
com Read-Through habilitado, correspondente à chave especificada.
// Specify the key of the item
string key = $"Product:{product.ProductID}";
// Specify the readThruOptions for read through operations
var readThruOptions = new ReadThruOptions();
readThruOptions.Mode = ReadMode.ReadThru;
// Retrieve the data of the corresponding item with read thru enabled
CacheItem data = cache.GetCacheItem(key, readThruOptions);
if (data != null)
{
// Perform operations accordingly
}
Usando Read-Through com Estruturas de Dados
O exemplo a seguir recupera um contador, uma lista, uma fila, um HashSet e um dicionário com leitura ativa, correspondente à chave especificada.
// Specify the key of the item
string key = $"Product:{product.ProductID}";
// Specify the readThruOptions for read through operations
var readThruOptions = new ReadThruOptions();
readThruOptions.Mode = ReadMode.ReadThru;
switch(mainMenu)
{
case mainMenu.GetDistributedCounter:
// Retrieve the count of the corresponding item with read thru enabled
ICounter counter = cache.DataTypeManager.GetCounter(key, readThruOptions);
break;
case mainMenu.GetDistributedDictionary:
// Retrieve dictionary of the corresponding item with read thru enabled
IDistributedDictionary<string, object> distributedDictionary = cache.DataTypeManager.GetDictionary<string, object>(key,readThruOptions);
break;
case mainMenu.GetDistributedList:
// Retrieve the list of the corresponding item with read thru enabled
IDistributedList<object> distributedList = cache.DataTypeManager.GetList<object>(key, readThruOptions);
break;
case mainMenu.GetDistributedQueue:
// Retrieve the queue of the corresponding item with read thru enabled
IDistributedQueue<object> distributedQueue = cache.DataTypeManager.GetQueue<object>(key, readThruOptions);
break;
case mainMenu.GetDistributedHashSet:
// Retrieve the HashSet of the corresponding item with read thru enabled
IDistributedHashSet<int> distributedHashSet = cache.DataTypeManager.GetHashSet<int>(key, readThruOptions);
break;
}
Configurar provedor de leitura padrão
Você pode especificar o provedor padrão por meio do NCache Centro de Gestão ou através do cliente.ncconf arquivo. Se o nome do provedor não for fornecido na API e cliente.ncconf, o provedor padrão será usado automaticamente.
<cache id="demoCache" default-readthru-provider="defaultProviderName" client-cache-id="" client-cache-syncmode="optimistic" default-writethru-provider="" load-balance="True">
...
</cache>
CacheConnectionOptions
também pode ser usado para especificar provedores. NCache fornece erros nos logs de cache em caso de exceção durante o carregamento dos assemblies fornecidos.
Recursos adicionais
NCache fornece um aplicativo de exemplo para leitura em GitHub.
Veja também
.INTERNET: Alachisoft.NCache.Tempo de execução espaço para nome.
Java: com.alachisoft.ncache.runtime.datasourceprovider espaço para nome.