- La maggior parte (ma non tutti) gli oggetti utilizzano una chiave
- Utilizzo degli spazi dei nomi
- Recupero di tutte le chiavi esistenti
Come altri motori di database non relazionali, a volte può essere difficile capire come Redis gestisce le strutture e le associazioni dei dati. Ciò è particolarmente vero quando Redis viene confrontato con un database relazionale più tradizionale con tabelle in quarantena, ciascuna contenente più righe e colonne per ospitare i dati.
Poiché Redis non è relazionale, tutto nel sistema è configurato con key/value
di base coppie al livello più semplice. Durante lo sviluppo in particolare, può essere complicato tenere traccia di tutto ciò che esiste già nel database, quindi in questo breve tutorial tratteremo il metodo per recuperare tutte le keys
da un database Redis con alcuni semplici comandi.
La maggior parte (ma non tutti) gli oggetti utilizzano una chiave
Per la stragrande maggioranza dell'archiviazione dei dati con Redis, i dati verranno archiviati in una semplice key/value
paio. Questo è meglio mostrato attraverso il redis-cli
(interfaccia a riga di comando) utilizzando GET
e SET
comandi.
Ad esempio, potremmo voler memorizzare alcune informazioni su books
, come il title
e author
di alcuni dei nostri preferiti.
> SET title "The Hobbit"
OK
> SET author "J.R.R. Tolkien"
OK
Il title
e author
sono le keys
abbiamo impostato e dopo sono stati specificati i valori di stringa effettivi. Quindi possiamo visualizzarli con GET
, in questo modo:
> GET title
"The Hobbit"
> GET author
"J.R.R. Tolkien"
Utilizzo degli spazi dei nomi
Va tutto bene, ma come aggiungiamo un altro libro? Non possiamo riutilizzare lo stesso title
e author
chiavi o sovrascriveremo i dati esistenti. Invece, possiamo usare la sintassi dello spazio dei nomi usando un :
separatore e assegnando a ciascun title
o author
inserire una key
numerica univoca :
> SET title:1 "The Hobbit"
OK
> SET author:1 "J.R.R. Tolkien"
OK
> SET title:2 "The Silmarillion"
OK
> SET author:2 "The Silmarillion"
OK
Ora usando GET
richiede l'aggiunta della key
numerica univoca anche:
> GET title:1
"The Hobbit"
> GET title:2
"The Silmarillion"
Recupero di tutte le chiavi esistenti
A quanto pare, ogni SET
il comando che abbiamo emesso sopra ha creato una nuova key
univoca all'interno del nostro database Redis. Per ottenere un elenco di tutte le keys
correnti che esistono, usa semplicemente i KEYS
comando:
> KEYS *
1) "title:1"
2) "title:2"
3) "title"
4) "author:2"
5) "author"
6) "author:1"
Seguendo KEYS
con un asterisco (*
) – che agisce come una ricerca con caratteri jolly – chiediamo a Redis di recuperare tutte le chiavi nel sistema. Quindi, non vediamo solo i nostri due title
originali e author
chiavi ma anche le quattro versioni enumerate che seguirono.
La sintassi che segue KEYS
può essere utilizzato per cercare parole o frasi specifiche all'interno della chiave o anche la corrispondenza esatta. Qui vogliamo tutte le chiavi che contengono il testo 'title'
:
> KEYS *title*
1) "title:1"
2) "title:2"
3) "title"
ATTENZIONE:Come indicato nella documentazione ufficiale, si consiglia di evitare di utilizzare le KEYS
comando su database molto grandi, ma in particolare evitate di utilizzarlo in un ambiente di produzione. Dal momento che KEYS
sta restituendo potenzialmente ogni chiave del sistema, questo può avere un impatto negativo drammatico sulle prestazioni.