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