Redis esisti

Redis esisti

Hashes Redis

La mappa è una struttura di dati ampiamente utilizzata nel contesto della programmazione. È una tecnica ampiamente utilizzata per archiviare le coppie di valore chiave. Ogni tasto mappa a un certo valore come mostrato nel seguente:

Gli hashe di Redis seguono la stessa struttura interna. Ma non ti permetteranno di archiviare tipi di valore complessi come set, elenco o hash. Ci sono alcuni modi per puntare i valori del campo di hash verso gli altri tipi di dati complessi, ma non è semplice.

Uso pratico degli hashes Redis

Gli hash di Redis sono molto efficaci in due diversi scenari:

  1. Rappresentazione dell'oggetto
  2. Archiviare in modo compatto valori di dati piccoli

Rappresentazione dell'oggetto usando hashes Redis

Nella programmazione, gli oggetti rappresentano le entità del mondo reale con i loro stati e comportamenti. Di solito, un oggetto ha un identificatore (nome) e proprietà interne come mostrato nelle seguenti:

Gli hash Redis sono in grado di conservare questo tipo di oggetto nella sua memoria. Sappiamo che Redis è la memoria della coppia di valore chiave. Pertanto, l'oggetto precedente può essere rappresentato come mostrato da segue:

Chiave : Utente: 001

Valore : Proprietà interne come hash Redis

La rappresentazione più dettagliata è mostrata di seguito.

Chiave : Utente: 001

Valore : "Name" => "Mike"

"Age" => "35"

"Paese" => "USA"

"Ismarried" => "vero"

La parte color verde è un valore di tipo hash Redis. In questo caso, abbiamo ottenuto quattro campi nel nostro hash e la chiave è l'utente: 001.

Archiviare in modo compatto valori di dati piccoli

Immagina di archiviare le coppie 100000-Field-Value in un database Redis. Il modo più tipico è creare i tasti di livello superiore 100000 che puntano ai valori rilevanti. Questa metodologia non sarà efficiente come potresti pensare. Quindi, possiamo usare gli hash per ottimizzare le prestazioni.

C'è un guadagno di performance negli hash ogni volta che un hash ha un piccolo numero di campi. Redis aumenta l'efficienza di accesso di una quantità considerevole. Chiamiamo questa piccola ottimizzazione di archiviazione hash di Redis. Pertanto, possiamo mantenere i 1000 hash ciascuno con 100 campi interni come mostrato nei seguenti:

La cosa migliore degli hash è che possono archiviare fino a 2^32-1 coppie di valore di campo nel formato di testo semplice. È un grande quantità di dati, oltre 4 miliardi.

Comandi hash di Redis

Redis consente di eseguire operazioni su hash. Ci sono circa 15 comandi hash disponibili da utilizzare come HSET, esisti, HGET, HGETL, ecc. Ci sono un paio di operazioni atomiche disponibili per l'esecuzione sui valori del campo di hash numerico. È l'incremento atomico e il decremento dei valori numerici usando comandi Hincrby e Hincrbyfloat.

Il comando esista

Il comando esista viene utilizzato per verificare se un determinato campo è disponibile nel particolare hash in una chiave specificata. Questo comando ha una complessità temporale costante che è indicata da Big O (1). Pertanto, è molto efficiente da usare.

Sintassi:

Esista key_name field_name

key_name : Questa è la chiave di livello superiore Redis di questo hash.

field_name : Questo è il nome del campo hash.

Valore di ritorno del comando

Il comando esista restituisce un valore intero di 1 o 0 in base ai risultati della valutazione del comando. Ritorna a 1 se il campo è disponibile nell'hash specificato. Se il campo o la chiave hash non è disponibile, ritorna a 0.

Uso pratico del comando esista

Creiamo un hash con un campo e controlla come funziona il comando. Possiamo usare il comando HSET per creare un hash con una coppia di valore di campo.

Utente HSET: 1 nome Mike

Successivamente, controlliamo se l'hash è stato aggiunto al database Redis correttamente. Il comando hgetall può essere usato per recuperare tutte le coppie di valore di campo per una determinata chiave hash.

Utente Hgetall: 1

Produzione:

Ora, controlliamo il comportamento del comando esista su questo hash:

Utente esista: 1 nome

In questo scenario, l'utente: 1 è la chiave hash. Il nome è il nome del campo hash. Poiché il campo Nome è disponibile nell'utente: 1 hash, dovrebbe tornare a 1.

Controlliamo il comando con un campo che non è disponibile nell'hash dato.

Utente esista: 1 età

In questo caso, il campo di età non è disponibile nell'utente: 1 hash. Quindi, l'output è 0.

In questo modo, puoi manipolare i campi di hash per la loro esistenza in una determinata chiave di hash. Questa è un'operazione molto efficiente nel tempo ed è utile nelle manipolazioni degli oggetti nei database Redis. Ci vuole un tempo costante per controllare l'esistenza del 1 ° campo o del 100 ° campo. Pertanto, si consiglia di utilizzare gli hash Redis ogni volta che è necessario archiviare oggetti o dati semplici.

Conclusione

Redis può archiviare diversi tipi di strutture di dati per una chiave specifica. Gli hash sono una delle strutture di dati più popolari utilizzate nei database Redis. Gli hash possono essere utilizzati per rappresentare e manipolare semplici gli oggetti e i dati in modo efficace. Redis supporta diverse operazioni di hash. Gli esisti sono uno dei comandi popolari per controllare l'esistenza di un determinato campo hash in una chiave hash.