AppFabric API vs. NCache API
Dado que AppFabric é uma tecnologia obsoleta, existem muitas diferenças entre ambas. Por exemplo, AppFabric usa regiões para definir divisões nos caches. Regiões em AppFabric Cache são coleções lógicas para organizar e gerenciar dados armazenados em cache. Por outro lado, NCache, usa Tags para simbolizá-los. Tags são identificadores baseados em string que permitem associar palavras-chave aos itens de cache para criar uma coleção lógica.
Por exemplo, se você adicionar a string "key1" no cache padrão em AppFabric, você também pode adicionar "key1" em uma região criada por você no mesmo cache. Para NCache, você pode usar uma tag com o item de cache "key1" para simular uma região. De forma similar, NCache é hábil em superar essas diferenças.
AppFabric: Obtendo instância de cache
In AppFabric, o usuário deve criar um DataCacheFactoryConfiguration
que fornece um DataCacheFactory
e, a partir disso, eles podem obter uma instância de cache. Em NCache, as configurações são cuidadas pelo NCache Centro de gerenciamento ou ferramenta de linha de comando. O comando a seguir retornará uma instância do cache se ele estiver em execução e inicializado.
ICache cacheInstance = CacheManager.GetCache(cacheName);
Existem muitas funções de gerenciamento de cache disponíveis nesta instância. Esta seção compara algumas das sobrecargas das APIs para ter uma breve ideia de como as coisas são diferentes com NCache.
Note
Seu aplicativo irá buscar o nome do cache no cliente.ncconf arquivo, portanto, certifique-se de que ele esteja presente como parte de sua implantação. Se você não tem NCache instalado em sua máquina cliente, você pode usar o cliente.ncconf arquivo adicionado ao seu projeto de aplicativo quando você instala o NCache AppFabric pacote NuGet wrapper para configurar o cliente de cache para acessar o NCache cacho. Se você tem NCache instalado em sua máquina, você pode encontrar este arquivo em %NCHOME%\config.
Operações CRUD
Adicionar operação
In AppFabric, um Add
operação é a seguinte:
cacheInstance.Add(stringKey, stringValue);
Obter operação
AppFabric e NCache As operações Get são iguais na sintaxe.
// Retrieve object
Object object = cache.Get<Object>(key);
A GetCacheItem
comando para AppFabric e NCache também é o mesmo, com NCache tendo múltiplas sobrecargas para filtrar o CacheItem
devolvida.
Operação Colocar/Inserir
A AppFabric Put
operação é equivalente a NCache's Insert
método. A sobrecarga mais simples para ambos NCache e AppFabric é o mesmo:
Remover operação
AppFabric e NCache tem semelhante Remove
operações, exceto para o tipo de retorno. Em AppFabric, o tipo de retorno de um Remove
função é Boolean
, significando se o item foi removido com sucesso ou não. Em NCache, o tipo de retorno é object
, determinando o valor do objeto associado à chave removida. Esta funcionalidade de NCache é semelhante a obter o item e excluí-lo do cache.
Operações adicionais de obtenção
Operação de obtenção em massa
AppFabric tem o seguinte comando para obter múltiplas entradas no cache, retornando uma Lista KeyValuePair
.
cacheInstance.BulkGet(listOfKeys, region);
O tipo de argumento difere para ambas as APIs como AppFabric requer uma lista, enquanto NCache requer uma matriz.
Operação GetIfNewer
A GetIfNewer
operações para AppFabric e NCache são os mesmos.
GetObjectsByAllTags
AppFabric retorna uma lista de KeyValuePair<string, object>
e leva uma lista de DataCacheTag
items para buscar os itens adicionados ao cache com as tags correspondentes.
cacheInstance.GetObjectsByAllTags(listOfDataCacheTag, region);
Operação GetObjectsByAnyTag
Igual ao anterior, o GetObjectsByAnyTag
retorna uma lista no caso de AppFabric e de um Hashtable
no caso de NCache.
ObterObjetosPorTag
Esta operação leva um único DataCacheTag
no caso de AppFabric e de um Tag
no caso de NCache.
ObterObjetosNaRegião
Como mencionado anteriormente, NCache usa tags para representar regiões. Portanto, para obter todos os objetos de uma região, NCache retorna um enumerador, que você pode iterar para obter os pares chave-valor presentes no cache.
No caso de AppFabric, um DataCacheItemVersion
é retornado, enquanto no caso de NCache, CacheItemVersion
é retornado, que são essencialmente os mesmos (veja documentação).
Operações de bloqueio e desbloqueio
Operação GetAndLock
AppFabric GetAndLock
operação é sinônimo de sobrecarga da operação Get de NCache, o que leva um LockHandle
referência como argumento. Para AppFabric, o comando se parece com:
cacheInstance.GetAndLock(key, timeout, out lockHandle);
Operação Colocar e Desbloquear
AppFabric fornece essa funcionalidade em uma função onde um item bloqueado é desbloqueado e atualizado no cache. O item pode ser atualizado com novos DataCacheTags
tão bem. NCache consegue isso usando uma sobrecarga da função Insert. Um simples AppFabric O comando será semelhante ao seguinte, no qual o item é inserido com DataCacheTags
.
cacheInstance.PutAndUnlock(key, value, lockHandle, dataCacheTags);
Operação de desbloqueio
AppFabric e NCache compartilham a mesma funcionalidade quando se trata de desbloquear um item presente no cache. Ambos usam uma chave e um objeto de alça de bloqueio para desbloquear os itens.
Operação ResetObjectTimeout
AppFabric fornece a funcionalidade de redefinir o tempo de expiração do item presente no cache usando a seguinte função:
cacheInstance.ResetObjecTimeout(key, newTimeout)
Essa abordagem pode parecer mais tediosa ao tentar manter o valor associado à chave no cliente. NCache oferece uma alternativa melhor. O cliente pode simplesmente adicionar o item com um Expiração deslizante. Isto é exatamente como a expiração em AppFabric, mas quando um item é atualizado ou obtido do cache, seu tempo limite é redefinido automaticamente. Portanto, a necessidade de gerenciar os timeouts dos objetos é tratada por NCache, facilitando o trabalho do usuário.
Registro de retorno de chamada
AppFabric permite que o cliente registre notificações de eventos nos níveis de cache e item. NCache fornece uma funcionalidade semelhante. A diferença ocorre no layout do delegado usado para ambos.
public delegate void DataCacheNotificationCallback(string cacheName, string regionName, string key, DataCacheItemVersion version, DataCacheOperations cacheOperation, DataCacheNotificationDescriptor nd);
A AppFabric delegado é detalhado, enquanto NCache é conciso e direto ao ponto. O CacheEventArg
class contém todos os valores necessários, como o valor associado à chave, os metadados e quaisquer outras informações para as quais o usuário registrou o evento.
O registro de um retorno de chamada no nível de cache é definido para cada um da seguinte forma:
cacheInstance.AddCacheLevelCallback(dataCacheOperations, dataCacheNotificationCallback);
Veja também
.INTERNET: Alachisoft.NCache.Cliente espaço para nome.
Java: com.alachisoft.ncache.cliente espaço para nome.
Node.js: Esconderijo classe.
Pitão: ncache.cliente classe.