• Facebook
  • Twitter
  • Youtube
  • Allineato
  • RSS
  • Docs
  • Confronti
  • Blog
  • Scaricare
  • Contattaci
Scaricare
Mostra/Nascondi sommario

Operazioni di base: una panoramica

NCache memorizza i dati come coppie chiave-valore, ovvero gli identificatori univoci (chiavi) vengono memorizzati in base a un dato (valore). Simile a un database chiave-valore, NCache memorizza, recupera e gestisce i dati tramite operazioni CRUD. A questo proposito, NCache fornisce un set diversificato di API CRUD per la memorizzazione nella cache di dati atomici o in blocco, sia in modo sincrono che asincrono. Questa sezione fornisce una panoramica di NCacheoperazioni CRUD di base supportate: Aggiungi, inserire, Ottienie Rimuovere.

Oltre ai valori convenzionali basati su stringhe, NCache permette di aggiungere tipi di dati primitivi, oggetti personalizzati, dati con metadati (CacheItem), strutture di datie Dati JSON.

Ogni oggetto aggiunto alla cache deve essere serializzabile. NCache utilizza la serializzazione binaria e JSON in base al formato del tuo negozio. Per il negozio JSON, NCache gestisce la serializzazione per gli oggetti forniti. In alternativa, è possibile aggiungere NCache-fornito serializzato JSON oggetti, che consentono il supporto per applicazioni multipiattaforma e multilingua.

Tipi di operazioni

NCache consente operazioni CRUD su articoli singoli o in blocco. Nel frattempo, le modalità operative supportate sono sincrone e asincrone. Qui spieghiamo brevemente i tipi e le modalità di funzionamento in NCache.

Cosa sono le operazioni atomiche?

Classifichiamo tutte le operazioni eseguite su una singola coppia chiave-valore come operazioni atomiche. Pertanto, tali operazioni richiedono una singola chiamata alla cache. Il comportamento delle operazioni atomiche di aggiunta, inserimento, rimozione e ottenimento sarà discusso nelle sezioni successive.

Cosa sono le operazioni in blocco?

Le operazioni in blocco consentono di eseguire qualsiasi operazione CRUD su più elementi tramite una singola chiamata alla cache. Sebbene un'operazione in blocco venga eseguita come operazione singola, l'errore delle operazioni viene trattato singolarmente. Sono specificamente progettati per migliorare le prestazioni. Ad esempio, il recupero di 100 elementi della cache in una singola operazione di massa è molto più rapido rispetto al recupero tramite 100 chiamate atomiche. In questo modo, le prestazioni migliorano grazie alla riduzione dei viaggi di rete verso il server remoto.

Le operazioni in blocco sono particolarmente utili per recuperare i dati memorizzati nella cache in blocco all'avvio di un'applicazione o per inserire il risultato di una query come blocco nella cache.

Cosa sono le operazioni sincrone?

NCache consente di aggiungere un elemento atomico o una massa di elementi in modo sincrono. Poiché le operazioni sincrone si verificano come una chiamata di blocco, il client deve attendere la risposta dal server per eseguire ulteriori operazioni. Il controllo ritorna all'applicazione una volta eseguita l'operazione.

Sebbene il client debba attendere il completamento dell'operazione, le operazioni di sincronizzazione consentono di restituire lo stato di esito positivo o negativo dell'operazione quando il controllo viene restituito all'utente. Tale operazione potrebbe non riuscire a causa di un errore di connessione con la cache o di errori interni del sistema. Questo processo fornisce alle applicazioni il controllo per gestire eventuali scenari di errore non appena vengono rilevati. Pertanto, queste operazioni sono essenziali quando si elaborano dati critici.

Inoltre, le operazioni sincrone sono sequenziali. Questo è utile se le operazioni sono interdipendenti. Ad esempio, un sito di e-commerce aggiunge in modo sincrono gli articoli in offerta flash solo per 2 ore e successivamente recupera gli articoli in offerta flash. Durante il recupero degli articoli in offerta memorizzati nella cache, è possibile evitare errori assicurandosi che questi articoli siano stati aggiunti correttamente alla cache per primi. Le operazioni CRUD di base sono sincrone per impostazione predefinita, salvo diversa indicazione.

Cosa sono le operazioni asincrone?

Le operazioni asincrone avvengono in background, quindi il client non deve attendere la risposta del server per eseguire ulteriori operazioni. L'elenco delle azioni da eseguire sulla cache viene mantenuto in una coda sul lato client e un thread in background dedicato continua a inviarle al lato server. Il controllo ritorna all'applicazione immediatamente dopo che un'operazione è stata messa in coda. Ciò aumenta la reattività complessiva dell'applicazione.

Le operazioni asincrone possono essere utili quando il tempo di risposta è fondamentale per l'applicazione e l'errore delle operazioni non ostacola il funzionamento dell'applicazione.

Poiché le operazioni asincrone non notificano l'esito negativo o il successo delle operazioni stesse, le chiamate asincrone NCache restituire un oggetto del Classe di attività che può essere ulteriormente utilizzato per ottenere lo stato dell'operazione. A questo proposito, la classe Task fornisce i seguenti flag di stato per indicare l'esito positivo o negativo dell'operazione eseguita.

  • È completato: Notifica se l'operazione specificata si verifica correttamente nella cache.
  • è in errore: Notifica se l'operazione specificata si verifica ma non riesce.
  • è cancellato: Avvisa se l'operazione specificata viene annullata per qualsiasi motivo interno.

CRUD di base nella cache distribuita

Puoi interagire con la cache una volta che ottieni un istanza di una cache. Vediamo il funzionamento e il comportamento delle operazioni CRUD di base supportate da NCache.

NCache Panoramica delle operazioni CRUD

Aggiungi/Inserisci

Gli elementi possono essere aggiunti alla cache utilizzando Aggiungi or inserire metodo. Tuttavia, entrambe le operazioni differiscono nel comportamento. Add aggiunge correttamente un elemento alla cache con una chiave specifica solo quando la chiave fornita non esiste nella cache e genera un'eccezione in caso contrario. Supponiamo che tu voglia proibire l'aggiunta di un elemento alla cache da parte di più client contemporaneamente. Quindi puoi usare il Add metodo per notificare l'errore dell'operazione se un client tenta di aggiungere un elemento già esistente nella cache.

D'altro canto, Insert funziona anche come operazione di aggiornamento. Se aggiungi un elemento utilizzando il file Insert metodo e la chiave specificata esiste già nella cache, l'elemento esistente nella cache viene sostituito. Oltre ad aggiungere elementi, aggiorna in modo sicuro gli elementi nella cache.

Il caso più semplice consiste nell'aggiungere o inserire direttamente un elemento nella cache specificando una chiave e un valore. Tuttavia, questi metodi hanno diversi sovraccarichi che consentono di aggiungere/inserire elementi nella cache con opzioni avanzate. I casi d'uso e i comportamenti pertinenti di Aggiungi/Inserisci sono discussi di seguito.

  • Aggiungi massa di dati: Una raccolta di dati può essere aggiunta alla cache contemporaneamente utilizzando il file AddBulk/InsertBulk metodo. AddBulk può essere utilizzato se richiedi specificamente notifiche di mancata aggiunta di elementi con chiavi esistenti. A questo proposito, le operazioni fallite vengono evidenziate singolarmente restituendo un dizionario che specifica le chiavi corrispondenti ad eccezione dell'applicazione. Ad esempio, se una massa di 100 elementi viene aggiunta alla cache e 20 di questi elementi sono già presenti nella cache, i restanti 80 elementi verranno aggiunti alla cache. I 20 elementi esistenti verranno restituiti all'applicazione come dizionario delle operazioni non riuscite.

Nel caso in cui si desideri evitare errori durante l'aggiunta di più elementi per aggiornare gli elementi esistenti, è possibile utilizzare il file InsertBulk metodo. Sovrascrive gli elementi esistenti nella cache e restituisce un dizionario di chiavi che non è stato possibile aggiungere/aggiornare per qualsiasi motivo.

  • Aggiungi i dati in modo asincrono: Gli elementi possono essere aggiunti/inseriti nella cache in modo asincrono quando si desidera migliorare l'efficienza dell'applicazione client. AddAsync/InsertAsync i metodi aggiungono gli elementi in background e restituiscono l'oggetto Task una volta completata l'operazione. Il cliente può controllare i flag di stato menzionati in Operazioni asincrone per verificare il successo o il fallimento dell'operazione di aggiunta/inserimento senza alcun codice aggiuntivo.

  • Aggiungi dati con dipendenze: Puoi aggiungere/inserire elementi nella cache con dipendenze. Poiché i dati della cache sono temporanei, potrebbe essere necessario rimuovere alcuni dati dalla cache in base a criteri specifici dell'utente. In quel caso, NCache fornisce vari modi per invalidare i dati memorizzati nella cache consentendo di impostare le dipendenze durante l'aggiunta/l'inserimento di elementi. In particolare, puoi impostare le dipendenze in base a tempo, dati della cache, banca datie una fonte esterna per invalidare ed eventualmente rimuovere determinati elementi in base ai requisiti dell'applicazione.

  • Scrittura simultanea: Puoi inserire elementi nella cache con bloccaggio per controllare l'accesso simultaneo in caso di applicazioni multithread o multiclient. Aiuta a mantenere l'integrità dei dati quando nella cache vengono eseguite operazioni di aggiornamento simultanee. Puoi bloccare un elemento esclusivamente o lavorare su una versione dell'elemento aggiunto alla cache. La versione dell'elemento viene gestita dalla cache per ogni elemento nella cache e viene incrementata automaticamente ogni volta che viene eseguita l'operazione di aggiornamento.

  • Scrivi nell'origine dati: In casi avanzati, se l'origine dati è configurata, i dati verranno aggiunti/aggiornati nella cache e nell'origine dati durante l'operazione di aggiunta/inserimento.

  • Flusso di esecuzione della richiesta: Quando si verifica un'operazione di aggiunta/inserimento, il processo di esecuzione della richiesta sottostante segue questi passaggi: serializzazione, crittografia e compressione. Innanzitutto, i dati forniti vengono serializzati. Quindi viene crittografato sul lato client se la crittografia è configurata. Poiché i dati che viaggiano attraverso la rete possono essere facilmente intercettati, puoi crittografare i tuoi dati sensibili utilizzando Crittografia dei dati per proteggerlo dai rischi per la sicurezza. Infine, i dati crittografati vengono compressi se la compressione è abilitata. Poiché la larghezza di banda e la memoria disponibili sono scarse, NCache Compressione dati Questa funzionalità consente di ridurre significativamente il traffico di rete e il consumo di memoria. Di conseguenza, le operazioni di scrittura vengono eseguite più velocemente.

Ottieni

In primo luogo, una cache è considerata efficace in base alla sua capacità di recuperare i dati. Un elemento può essere recuperato dalla cache utilizzando il file Get operazione specificando la chiave in base alla quale è stato archiviato l'elemento. Nel caso in cui l'elemento specificato non esista nella cache, viene restituito un valore nullo senza eccezioni.

  • Ottieni grandi quantità di articoli: È possibile recuperare più elementi dalla cache contemporaneamente utilizzando il file GetBulk metodo. Recupera gli elementi trovati nella cache sotto forma di un dizionario di valori-chiave. Non viene generata alcuna eccezione se una delle chiavi specificate non esiste nella cache.

  • Verificare l'esistenza degli elementi: poiché la cache è volatile, potrebbe essere necessario sapere se un elemento esiste o meno nella cache. L'esistenza di un elemento può essere determinata utilizzando il file NCache purché Contains metodo. Inoltre, l'esistenza di più elementi può essere verificata attraverso il ContainsBulk metodo.

  • Ottieni dall'origine dati: Nei casi avanzati, se l'origine dati è configurata, i dati verranno recuperati dall'origine dati se non esiste nella cache. Per maggiori dettagli si può fare riferimento al capitolo Fornitori di origini dati.

Rimuovere

Per gestire in modo efficiente i dati obsoleti e l'archiviazione nella cache, potrebbe essere necessario rimuovere i dati in modo esplicito. Puoi rimuovere facilmente gli elementi dalla cache utilizzando il file Remove metodo. Se la chiave specificata non esiste nella cache, viene restituito un valore null. È inoltre possibile ottenere l'elemento rimosso per un'ulteriore elaborazione in base alle esigenze dell'applicazione. Tuttavia, il costo per recuperare gli oggetti al momento della rimozione è inevitabile. Pertanto, si consiglia l'approccio precedente quando non sono necessari gli elementi in fase di rimozione.

  • Rimuovi articoli in blocco: Una raccolta di elementi può essere rimossa dalla cache contemporaneamente utilizzando il file RemoveBulk metodo. Puoi anche recuperare gli elementi rimossi con successo in un dizionario. Tuttavia, può essere lento a seconda delle dimensioni degli oggetti recuperati durante la rimozione. Pertanto, si consiglia di rimuovere semplicemente gli elementi poiché è più efficiente quando non è necessario elaborare gli elementi rimossi.

  • Rimuovere gli elementi in modo asincrono: È possibile rimuovere i dati atomici dalla cache in modo asincrono utilizzando il file RemoveAsync metodo. L'elemento verrà rimosso in background e, al termine dell'operazione, riceverai lo stato. Nel caso in cui desideri verificare se l'elemento è stato rimosso correttamente o meno, puoi utilizzare i flag di stato forniti per le operazioni asincrone.

  • Rimuovi dall'origine dati: In casi avanzati, se l'origine dati è configurata, la rimozione dei dati avverrà sia nella cache che nell'origine dati. Per maggiori dettagli, puoi fare riferimento al capitolo Fornitori di origini dati.

In questa sezione

Chiavi della cache e memorizzazione nella cache dei dati
Fornisce una panoramica delle chiavi di cache e della memorizzazione nella cache dei dati.

Aggiungi dati alla cache
Spiega come aggiungere dati nella cache.

Aggiorna i dati esistenti nella cache
Spiega come aggiornare i dati esistenti nella cache.

Recupera i dati della cache esistenti
Spiega come recuperare i dati dalla cache.

Rimuovere i dati dalla cache
Spiega come rimuovere i dati dalla cache.

Operazioni di massa
Spiega come eseguire operazioni in blocco nella cache.

Operazioni asincrone
Spiega come eseguire operazioni asincrone nella cache.

Contattaci

PHONE

+1 214-619-2601   (US)

+44 20 7993 8327   (UK)

 
E-MAIL

sales@alachisoft.com

support@alachisoft.com

NCache
  • Confronto edizione
  • NCache Architettura
  • Parametri di riferimento
Scaricare
Prezzi
Prova Parco giochi

Distribuzioni
  • Cloud (SaaS e software)
  • On-Locale
  • kubernetes
  • docker
Casi d'uso tecnici
  • Sessioni ASP.NET
  • Sessioni ASP.NET Core
  • Messaggistica Pub/Sub
  • SignalR in tempo reale per ASP.NET
  • Internet of Things (IoT)
  • Database NoSQL
  • Streaming Processing
  • Microservices
Risorse
  • Articoli di riviste
  • Articoli di terze parti
  • Articoli
  • Video
  • Fogli bianchi
  • Spettacoli
  • trattativa
  • Blog
  • Docs
Casi di studio dei clienti
  • Testimonianze
  • Clienti
Assistenza
  • Pianificare un demo
  • Forum (Google Gruppi)
  • Consigli
Azienda
  • Leadership
  • Partner
  • News
  • Eventi
  • Lavora con noi
Contattaci

  • IngleseCinese (semplificato)FranceseTedescoItalianoGiapponeseCoreanoPortogheseCorsi

  • Contattaci
  •  
  • Mappa del sito
  •  
  • Termini d’uso
  •  
  • Informativa privacy
© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.
Torna in alto