sql >> Databáze >  >> NoSQL >> Redis

Jak získat všechny klíče v Redis

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


  1. MongoDB:Jak najít dokument podle id uvnitř vnořeného dokumentu

  2. Může redis zakázat odpovědi na zřetězené příkazy?

  3. Jak lze reprezentovat pole MongoDB GeoJSON ve schématu Mongoose?

  4. MongoDB $not Aggregation Pipeline Operator