Affinità di posizione
NCache fornisce un meccanismo per archiviare i dati nella cache che crea un'affinità tra elementi di classi diverse. Puoi archiviare elementi di tipi diversi sullo stesso nodo per risparmiare sul costo di corrispondenza durante il recupero di elementi con chiavi simili. Questo meccanismo mappa voci simili nel backend, velocizzando ulteriormente le operazioni di recupero.
Prerequisiti
- Per conoscere i prerequisiti standard richiesti per lavorare con all NCache Per le funzionalità lato client fare riferimento alla pagina specificata Prerequisiti dell'API lato client.
- Per i dettagli dell'API, fare riferimento a: Aggiungi, CacheItem, CacheItemVersion, ICache.
Aggiunta di elementi con affinità di posizione
L'affinità di posizione può essere abilitata manualmente durante l'inserimento dei dati nella cache. La chiave dell'elemento deve essere la stessa all'interno delle parentesi graffe {}
come nell'altro articolo. Ad esempio, per creare un'affinità di posizione tra ed Ordina oggetti, è possibile specificare la chiave "Cliente:1001" per un oggetto Cliente nella cache e quindi creare un'affinità dell'ordine associato specificando "Cliente:1001" all'interno {}
. Quindi la chiave dell'oggetto Order può essere specificata come "Order_{Customer:1001}". Ciò garantirà che i clienti e gli ordini esistano all'interno dello stesso nodo.
// Precondition: Cache is already connected
Customer customer = FetchCustomerFromDB(1001);
string customerKey = "Customer:1001";
var customerCacheItem = new CacheItem(customer);
// Add CacheItem to cache
cache.Add(customerKey, customerCacheItem);
Order order = FetchOrderFromDB(1001);
// Unique orderKey for this order using location affinity syntax
// This will create an affinity for this orderKey with the respective customerKey
string orderKey = "Order_{"+ customerKey +"}";
var orderCacheItem = new CacheItem(order);
// Add order with location affinity to the cache
cache.Add(orderKey, orderCacheItem);
Note:
Per garantire che l'operazione sia a prova di errore, si consiglia di gestire eventuali potenziali eccezioni all'interno dell'applicazione, come spiegato in Gestione dei guasti.
Risorse addizionali
NCache fornisce un'applicazione di esempio per l'utilizzo dell'affinità di posizione su GitHub.
Vedere anche
.NETTO: Alachisoft.NCache.Cliente spazio dei nomi.
Giava: com.alachisoft.ncache.cliente spazio dei nomi.
Node.js: Cache classe.
Pitone: ncache.cliente classe.