Casa Finanza personale Accesso chiave ad alta velocità con NoSQL - dummies

Accesso chiave ad alta velocità con NoSQL - dummies

Sommario:

Video: Common design patterns with Azure Cosmos DB | Azure Friday 2025

Video: Common design patterns with Azure Cosmos DB | Azure Friday 2025
Anonim

Gli archivi a valore chiave in NoSQL sono tutti basati sulla velocità. È possibile utilizzare varie tecniche per massimizzare tale velocità, dai dati di memorizzazione nella cache, all'utilizzo di più copie di dati o all'utilizzo delle strutture di archiviazione più appropriate.

Memorizzazione nella cache dei dati in memoria

Poiché i dati sono facilmente accessibili quando sono archiviati nella memoria ad accesso casuale (RAM), la scelta di un archivio di valori-chiave che memorizza i dati nella RAM può velocizzare significativamente l'accesso ai dati, anche se al prezzo di maggiori costi del server.

Spesso, però, vale la pena di fare questo compromesso. Puoi facilmente calcolare quale percentuale dei tuoi dati memorizzati è richiesta frequentemente. Se sai che il cinque percento è generalmente richiesto ogni pochi minuti, prendi il cinque percento delle dimensioni dei tuoi dati e aggiungi quel numero come spazio di RAM di riserva tra i tuoi server di database.

Tenere presente che anche il sistema operativo, altre applicazioni e il server del database hanno requisiti di memoria.

Replica dei dati negli slave

Negli archivi di valori-chiave, una chiave particolare viene archiviata su uno dei server nel cluster. Questo processo è chiamato key partitioning . Ciò significa che, se questa chiave viene richiesta costantemente, questo nodo riceverà la maggior parte delle richieste. Questo nodo, quindi, sarà più lento della velocità media della richiesta, influenzando potenzialmente la qualità del servizio per gli utenti.

Per evitare questa situazione, alcuni negozi di valore-chiave supportano l'aggiunta di repliche di sola lettura, dette anche slave. Redis, Riak e Aerospike sono buoni esempi. La replica consente di archiviare la chiave più volte su più server, aumentando la velocità di risposta ma al costo di un maggior numero di hardware.

Alcuni negozi con valore chiave garantiscono che le repliche della chiave abbiano sempre lo stesso valore del master. Questa garanzia è chiamata essere pienamente coerente. Se si verifica un aggiornamento sul server master che contiene la chiave, tutte le repliche sono garantite per essere aggiornate.

Non tutti i negozi di valore-chiave garantiscono questo stato (Riak, per esempio), quindi se è importante essere aggiornati al millisecondo, quindi scegliere un database le cui repliche siano completamente coerenti (come Aerospike).

Modellazione dei dati nei negozi di valori-chiave

Molti negozi di valori-chiave supportano solo strutture base per i loro tipi di valore, lasciando al programmatore dell'applicazione il compito di interpretare i dati. Il supporto del tipo di dati semplice in genere include stringhe, numeri interi, JSON e valori binari.

Per molti casi d'uso, questo funziona bene, ma a volte è utile un accesso un po 'più granulare ai dati.Redis, ad esempio, supporta i seguenti tipi di valori di dati:

  • Stringa

  • Elenco

  • Set

  • Set ordinato

  • Mappe hash

  • Matrici bit

  • Log Hyperlog

I set ordinati possono essere interrogato per la corrispondenza di intervalli di valori - molto simile a interrogare un indice di valori ordinati per data, che è molto utile per la ricerca di un sottoinsieme di dati digitati.

Operando sui dati

Redis include operazioni per incrementare e decrementare direttamente i valori chiave, senza dover eseguire una serie di passi read-modify-update (RMU). È possibile farlo in un'unica transazione per garantire che nessun'altra applicazione modifichi il valore durante un aggiornamento. Queste operazioni specifiche del tipo di dati includono anche l'aggiunta e la rimozione di elementi in elenchi e insiemi.

È anche possibile fornire funzionalità di completamento automatico sull'interfaccia utente di un'applicazione utilizzando il comando Redis ZRANGEBYLEX. Questo comando recupera un set di chiavi che corrisponde parzialmente a una stringa. Quindi, se dovessi digitare "NoSQL for" nella barra di ricerca di un'applicazione creata su Redis, vedresti il ​​suggerimento "NoSQL For Dummies. "

Valutazione dei redis

Redis è orgoglioso di essere un negozio di valori-chiave molto leggero ma incredibilmente veloce. È stato originariamente progettato per essere un archivio di valori-chiave in-memory, ma ora vanta l'archiviazione dei dati basata su disco.

È possibile utilizzare Redis per salvaguardare i dati abilitando la modalità AOF (aggiungi solo file) e istruendo Redis per forzare i dati su disco su ogni query (noto come fsync flushing forzato). AOF rallenta le operazioni di scrittura, ovviamente, ma fornisce un livello più alto di durabilità per i dati. Essere consapevoli, tuttavia, che è ancora possibile perdere fino a un secondo di comandi.

Inoltre, Redis ha aggiunto solo di recente il supporto per il clustering. Infatti, al momento della stesura di questo articolo, il supporto del clustering di Redis è in fase di beta testing. Fortunatamente, Redis utilizza un modello di cluster a nulla condiviso, con master per chiavi e schiavi particolari che non vengono mai scritti direttamente da un client; solo il padrone lo fa. Fornire clustering shared-nothing dovrebbe rendere più semplice per Redis implementare clustering affidabile di quanto lo sia per i database che consentono di scrivere su tutte le repliche.

Se si desidera uno strato di cache in memoria ad altissima velocità di fronte a un altro database - MongoDB o Riak sono comunemente usati con Redis - quindi valutare Redis come opzione. Man mano che il supporto per il clustering e la durabilità dei dati si evolvono, forse Redis può superare altri database di back-end.

Accesso chiave ad alta velocità con NoSQL - dummies

Scelta dell'editore

Come leggere dal file in PHP per la programmazione HTML5 e CSS3 - manichini

Come leggere dal file in PHP per la programmazione HTML5 e CSS3 - manichini

Se puoi scrivere dati in un file in PHP, sarebbe logico che tu possa leggere da quel file anche per la programmazione HTML5 e CSS3. Il readContact. programma php recupera i dati salvati nel programma precedente e li visualizza sullo schermo. Non è difficile scrivere un programma per leggere ...

Come usare una classe PHP in uno script - dummy

Come usare una classe PHP in uno script - dummy

Il codice classe PHP deve essere inserito lo script che usa la classe. Più comunemente, la classe viene archiviata in un file di inclusione separato ed è inclusa in qualsiasi script che utilizza la classe. Per usare un oggetto, devi prima creare l'oggetto dalla classe. Quindi quell'oggetto può eseguire qualsiasi metodo che ...

Scelta dell'editore

Come usare lo strumento Timbro clone di Photoshop - manichini

Come usare lo strumento Timbro clone di Photoshop - manichini

Puoi usare lo strumento Timbro clone in Photoshop per rimuovere gli angoli e altri difetti copiando una porzione dei pixel circostanti, che dovrebbero avere un colore e una consistenza simili, sopra la parte malata dell'immagine. Per utilizzare lo strumento Timbro clone, attenersi alla seguente procedura: Selezionare lo strumento Timbro clone dallo strumento ...

Come disinstallare e reinstallare Photoshop Lightroom - dummies

Come disinstallare e reinstallare Photoshop Lightroom - dummies

Se si nota un problema con Lightroom la prima volta che si avvia esso, qualcosa potrebbe essere andato storto durante il processo di installazione. Disinstallare e quindi reinstallare potrebbe essere tutto ciò che è necessario per correggere il problema. Il processo è diverso per ogni sistema operativo, quindi ecco i passaggi separati per ciascuno. Su Windows: Chiudi tutto ...

Fotografia For Dummies Cheat Sheet - dummies

Fotografia For Dummies Cheat Sheet - dummies

La fotografia è un hobby divertente e gratificante che può renderti molto popolare tra la gente nelle tue foto - o molto impopolare. Per ottenere il massimo da una fotocamera "inquadra e scatta", digitale o meno, la prima abilità da padroneggiare è bloccare l'attenzione. Puoi perfezionare le tue abilità fotografiche in modo che le tue foto siano ...

Scelta dell'editore

Agire per aumentare le emozioni edificanti - manichini

Agire per aumentare le emozioni edificanti - manichini

Al fine di elevare le tue emozioni, il primo passo è diventare consapevoli di quale emozioni che hai Diventa consapevole di ciò che ti innesca: cosa ti mette in agitazione e ti fa arrabbiare e ciò che ti rende molto eccitato. Un trigger sta guardando alcuni programmi televisivi e consente alle emozioni di questi programmi di permeare ...

Come le aziende ti convincono ad acquistare i loro prodotti - manichini

Come le aziende ti convincono ad acquistare i loro prodotti - manichini

Quasi tutti i media commerciali destinati alle donne ottengono la loro pubblicità entrate dalle industrie del cibo, della bellezza, della dieta e della moda. Solo l'industria della dieta stessa è un'impresa commerciale da 33 miliardi di dollari l'anno. E, naturalmente, queste industrie hanno bisogno di clienti in modo continuativo per continuare a avere successo. È nel loro interesse per ...

Come si forma l'immagine del corpo nella tua gioventù - dummies

Come si forma l'immagine del corpo nella tua gioventù - dummies

In generale, ciò che hai vissuto con la tua famiglia quando stavano crescendo ha avuto un effetto diretto sui pensieri e le sensazioni che hai avuto sul tuo corpo. Ripensa ai tuoi anni più giovani. Quanto attentamente le seguenti affermazioni descrivono la tua famiglia? Nessuno ha esercitato. L'auto è stata utilizzata anche per viaggi brevi. Cibo pesante e da ingrasso ...