sql >> Database >  >> NoSQL >> Redis

Hoe krijg ik alle sleutels in Redis

  • De meeste (maar niet alle) objecten gebruiken een sleutel
    • Naamruimten gebruiken
  • Alle bestaande sleutels ophalen

Net als andere niet-relationele database-engines, kan het soms moeilijk zijn om je gedachten te wikkelen over hoe Redis omgaat met datastructuren en associaties. Dit is met name het geval wanneer Redis wordt vergeleken met meer traditionele relationele databases met in quarantaine geplaatste tabellen, die elk meerdere rijen en kolommen bevatten om gegevens op te slaan.

Aangezien Redis niet-relationeel is, is alles in het systeem geconfigureerd met basis key/value paren op het eenvoudigste niveau. Met name tijdens de ontwikkeling kan het lastig zijn om alles bij te houden wat al in de database bestaat, dus in deze korte tutorial behandelen we de methode voor het ophalen van alle keys uit een Redis-database met enkele eenvoudige commando's.

De meeste (maar niet alle) objecten gebruiken een sleutel

Voor het overgrote deel van de gegevensopslag met Redis worden gegevens opgeslagen in een eenvoudige key/value paar. Dit wordt het best weergegeven via de redis-cli (opdrachtregelinterface) met behulp van GET en SET commando's.

We willen bijvoorbeeld wat informatie over books opslaan , zoals de title en author van een paar van onze favorieten.

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

De title en author zijn de keys we hebben ingesteld en de werkelijke tekenreekswaarden zijn daarna gespecificeerd. Dus we kunnen ze bekijken met GET , zoals zo:

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

Naamruimten gebruiken

Dat is allemaal goed en wel, maar hoe voegen we nog een boek toe? We kunnen dezelfde title niet hergebruiken en author sleutels of we overschrijven de bestaande gegevens. In plaats daarvan kunnen we de syntaxis van de naamruimte gebruiken met een : scheidingsteken en het geven van elke title of author voer een unieke numerieke key in :

> 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

Gebruikt nu GET vereist het toevoegen van de unieke numerieke key ook:

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

Alle bestaande sleutels ophalen

Het blijkt dat elke SET opdracht die we hierboven hebben gegeven, creëerde een nieuwe, unieke key binnen onze Redis-database. Om een ​​lijst te krijgen van alle huidige keys die er zijn, gebruik gewoon de KEYS commando:

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

Door KEYS te volgen met een asterisk (* ) - die fungeert als een zoekopdracht met jokertekens - we vragen Redis om alle sleutels in het systeem op te halen. We zien dus niet alleen onze twee originele title en author toetsen, maar ook de vier opgesomde versies die volgden.

De syntaxis die volgt op KEYS kan worden gebruikt om naar specifieke woorden of woordgroepen binnen de sleutel te zoeken, of ook naar de exacte overeenkomst. Hier willen we alle sleutels die de tekst 'title' . bevatten :

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

VOORZICHTIG:Zoals vermeld in de officiële documentatie, is het raadzaam om het gebruik van de KEYS te vermijden. commando op zeer grote databases, maar gebruik het vooral niet in een productieomgeving. Sinds KEYS mogelijk elke sleutel in het systeem retourneert, kan dit een dramatisch negatief effect hebben op de prestaties.


  1. Waarschuwing bij verbinding maken met MongoDB met een Node-server

  2. MongoDB-query met elemMatch voor geneste arraygegevens

  3. Tips voor het beheren van uw databaseconfiguraties

  4. Update geneste subdocumenten in MongoDB met arrayFilters