- Většina (ale ne všechny) objekty používá klíč
- Používání jmenných prostorů
- Načítání všech existujících klíčů
Podobně jako u jiných nerelačních databázových strojů může být někdy obtížné pochopit, jak Redis zpracovává datové struktury a asociace. To platí zejména při srovnání Redis s tradičnějšími relačními databázemi s tabulkami v karanténě, z nichž každá obsahuje více řádků a sloupců pro uložení dat.
Protože Redis není relační, vše v systému je nakonfigurováno pomocí základního key/value
páry na nejjednodušší úrovni. Zejména během vývoje může být obtížné sledovat vše, co již v databázi existuje, takže v tomto krátkém tutoriálu pokryjeme metodu pro získání všech keys
z databáze Redis pomocí několika jednoduchých příkazů.
Většina (ale ne všechny) objekty používá klíč
U naprosté většiny datových úložišť s Redis budou data uložena v jednoduchém key/value
pár. To se nejlépe ukáže pomocí redis-cli
(rozhraní příkazového řádku) pomocí GET
a SET
příkazy.
Můžeme například chtít uložit nějaké informace o books
, například title
a author
z několika našich oblíbených.
> SET title "The Hobbit"
OK
> SET author "J.R.R. Tolkien"
OK
title
a author
jsou keys
jsme nastavili a skutečné hodnoty řetězce byly specifikovány poté. Můžeme je tedy zobrazit pomocí GET
, asi takhle:
> GET title
"The Hobbit"
> GET author
"J.R.R. Tolkien"
Použití jmenných prostorů
To je všechno v pořádku, ale jak přidáme další knihu? Nemůžeme znovu použít stejný title
a author
nebo přepíšeme stávající data. Místo toho můžeme použít syntaxi jmenného prostoru pomocí :
oddělovač a každý title
nebo author
zadejte jedinečný číselný 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
Nyní pomocí GET
vyžaduje přidání jedinečného číselného keys
také:
> GET title:1
"The Hobbit"
> GET title:2
"The Silmarillion"
Načítání všech existujících klíčů
Jak se ukázalo, každý SET
příkaz, který jsme vydali výše, vytvořil nový, jedinečný key
v naší databázi Redis. Chcete-li získat seznam všech aktuálních keys
které existují, jednoduše použijte KEYS
příkaz:
> KEYS *
1) "title:1"
2) "title:2"
3) "title"
4) "author:2"
5) "author"
6) "author:1"
Sledováním KEYS
s hvězdičkou (*
) – která funguje jako vyhledávání pomocí zástupných znaků – žádáme Redis, aby načetla všechny klíče v systému. Nevidíme tedy pouze naše dva původní title
a author
klíče, ale také čtyři vyjmenované verze, které následovaly.
Syntaxe následující za KEYS
lze použít k vyhledání konkrétních slov nebo frází v klíči nebo také přesné shody. Zde chceme všechny klíče, které obsahují text 'title'
:
> KEYS *title*
1) "title:1"
2) "title:2"
3) "title"
UPOZORNĚNÍ:Jak je uvedeno v oficiální dokumentaci, je vhodné vyhnout se používání KEYS
ve velmi rozsáhlých databázích, ale zejména se vyvarujte jeho použití v produkčním prostředí. Od KEYS
vrací potenciálně každý klíč v systému, může to mít dramatický negativní dopad na výkon.