- De flesta (men inte alla) objekt använder en nyckel
- Använda namnområden
- Hämtar alla befintliga nycklar
Precis som andra icke-relationella databasmotorer, kan det ibland vara svårt att lägga sig kring hur Redis hanterar datastrukturer och associationer. Detta är särskilt sant när Redis jämförs med en mer traditionell relationsdatabaser med tabeller i karantän, som var och en innehåller flera rader och kolumner för att lagra data.
Eftersom Redis är icke-relationellt är allt i systemet konfigurerat med grundläggande key/value
par på den enklaste nivån. Särskilt under utveckling kan det vara knepigt att hålla reda på allt som redan finns i databasen, så i denna korta handledning tar vi upp metoden för att hämta alla keys
från en Redis-databas med några enkla kommandon.
De flesta (men inte alla) objekt använder en nyckel
För den stora majoriteten av datalagring med Redis kommer data att lagras i en enkel key/value
par. Detta visas bäst genom redis-cli
(kommandoradsgränssnitt) med GET
och SET
kommandon.
Till exempel kan vi vilja lagra viss information om books
, till exempel title
och author
av några av våra favoriter.
> SET title "The Hobbit"
OK
> SET author "J.R.R. Tolkien"
OK
title
och author
är keys
vi har ställt in och de faktiska strängvärdena specificerades efter. Så vi kan se dem med GET
, som så:
> GET title
"The Hobbit"
> GET author
"J.R.R. Tolkien"
Använda namnutrymmen
Det är väl och bra, men hur lägger vi till en till bok? Vi kan inte återanvända samma title
och author
nycklar eller så skriver vi över befintlig data. Istället kan vi använda namnutrymmessyntax genom att använda en :
separator och ger varje title
eller author
ange 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
Använder nu GET
kräver att du lägger till den unika numeriska key
likaså:
> GET title:1
"The Hobbit"
> GET title:2
"The Silmarillion"
Hämta alla befintliga nycklar
Som det visar sig, varje SET
kommandot vi utfärdade ovan skapade en ny, unik key
i vår Redis-databas. För att få en lista över alla nuvarande keys
som finns, använd bara KEYS
kommando:
> KEYS *
1) "title:1"
2) "title:2"
3) "title"
4) "author:2"
5) "author"
6) "author:1"
Genom att följa KEYS
med en asterisk (*
) – som fungerar som en jokerteckensökning – vi ber Redis att hämta alla nycklar i systemet. Således ser vi inte bara våra två ursprungliga title
och author
nycklar men också de fyra uppräknade versionerna som följde också.
Syntaxen efter KEYS
kan användas för att söka efter specifika ord eller fraser inom nyckeln, eller den exakta matchningen också. Här vill vi ha alla nycklar som innehåller texten 'title'
:
> KEYS *title*
1) "title:1"
2) "title:2"
3) "title"
VARNING:Som nämnts i den officiella dokumentationen är det tillrådligt att undvika att använda KEYS
kommandot på mycket stora databaser, men undvik särskilt att använda det i en produktionsmiljö. Sedan KEYS
returnerar potentiellt alla nycklar i systemet, kan detta ha en dramatisk negativ inverkan på prestandan.