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

Sådan får du alle nøgler i Redis

  • De fleste (men ikke alle) objekter bruger en nøgle
    • Brug af navnerum
  • Henter alle eksisterende nøgler

Ligesom andre ikke-relationelle databasemotorer kan det nogle gange være svært at sætte sig ind i, hvordan Redis håndterer datastrukturer og associationer. Dette gælder især, når Redis sammenlignes med en mere traditionel relationsdatabase med tabeller i karantæne, som hver indeholder flere rækker og kolonner til at rumme data.

Da Redis er ikke-relationel, er alt i systemet konfigureret med grundlæggende key/value par på det enkleste niveau. Især under udvikling kan det være vanskeligt at holde styr på alt, der allerede findes i databasen, så i denne korte vejledning vil vi dække metoden til at hente alle keys fra en Redis-database med nogle simple kommandoer.

De fleste (men ikke alle) objekter bruger en nøgle

For langt størstedelen af ​​datalagring med Redis vil data blive gemt i en simpel key/value par. Dette vises bedst gennem redis-cli (kommandolinjegrænseflade) ved hjælp af GET og SET kommandoer.

For eksempel vil vi måske gemme nogle oplysninger om books , såsom title og author af et par af vores favoritter.

> SET title "The Hobbit"
OK
> SET author "J.R.R. Tolkien"
OK

title og author er keys vi har indstillet, og de faktiske strengværdier blev angivet efter. Så vi kan se dem med GET , sådan:

> GET title
"The Hobbit"
> GET author
"J.R.R. Tolkien"

Brug af navnerum

Det er godt og vel, men hvordan tilføjer vi endnu en bog? Vi kan ikke genbruge den samme title og author nøgler, eller vi overskriver de eksisterende data. I stedet kan vi bruge navnerumssyntaks ved at bruge en : separator og giver hver title eller author indtast en unik numerisk key :

> 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

Bruger nu GET kræver tilføjelse af den unikke numeriske key også:

> GET title:1
"The Hobbit"
> GET title:2
"The Silmarillion"

Henter alle eksisterende nøgler

Som det viser sig, hver SET kommando, vi udstedte ovenfor, skabte en ny, unik key i vores Redis-database. For at få en liste over alle aktuelle keys der findes, skal du blot bruge KEYS kommando:

> KEYS *
1) "title:1"
2) "title:2"
3) "title"
4) "author:2"
5) "author"
6) "author:1"

Ved at følge KEYS med en stjerne (* ) – som fungerer som en jokertegnssøgning – vi beder Redis om at hente alle nøgler i systemet. Således ser vi ikke kun vores to originale title og author nøgler, men også de fire opregnede versioner, der fulgte.

Syntaksen efter KEYS kan bruges til at søge efter specifikke ord eller sætninger i nøglen, eller også det nøjagtige match. Her vil vi have alle nøgler, der indeholder teksten 'title' :

> KEYS *title*
1) "title:1"
2) "title:2"
3) "title"

FORSIGTIG:Som nævnt i den officielle dokumentation, er det tilrådeligt at undgå at bruge KEYS kommando på meget store databaser, men undgå især at bruge det i et produktionsmiljø. Siden KEYS returnerer potentielt alle nøgler i systemet, kan dette have en dramatisk negativ indvirkning på ydeevnen.


  1. Udfyld manglende datoer i optegnelser

  2. Få seneste MongoDB-rekord efter felt af dato og klokkeslæt

  3. Kombiner to OR-forespørgsler med AND i Mongoose

  4. Sådan annullerer du et job i kø i Laravel eller Redis