Redis
 sql >> Database >  >> NoSQL >> Redis

Come ottenere tutte le chiavi in ​​Redis

  • 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.