Redis
 sql >> Base de données >  >> NoSQL >> Redis

Comment obtenir toutes les clés dans Redis

  • La plupart des objets (mais pas tous) utilisent une clé
    • Utiliser des espaces de noms
  • Récupération de toutes les clés existantes

Comme d'autres moteurs de bases de données non relationnelles, comprendre comment Redis gère les structures de données et les associations peut parfois être difficile. Cela est particulièrement vrai lorsque Redis est comparé à des bases de données relationnelles plus traditionnelles avec des tables mises en quarantaine, chacune contenant plusieurs lignes et colonnes pour héberger les données.

Étant donné que Redis n'est pas relationnel, tout dans le système est configuré avec une key/value de base paires au niveau le plus simple. Pendant le développement en particulier, il peut être difficile de garder une trace de tout ce qui existe déjà dans la base de données, donc dans ce bref tutoriel, nous couvrirons la méthode pour récupérer toutes les keys à partir d'une base de données Redis avec quelques commandes simples.

La plupart (mais pas tous) les objets utilisent une clé

Pour la grande majorité du stockage de données avec Redis, les données seront stockées dans une simple key/value paire. Ceci est mieux illustré par le redis-cli (interface de ligne de commande) en utilisant GET et SET commandes.

Par exemple, nous pouvons vouloir stocker des informations sur les books , comme le title et author de quelques-uns de nos favoris.

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

Le title et author sont les keys nous avons défini et les valeurs de chaîne réelles ont été spécifiées après. Nous pouvons donc les visualiser avec GET , comme ceci :

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

Utilisation des espaces de noms

C'est bien beau, mais comment ajouter un autre livre ? Nous ne pouvons pas réutiliser le même title et author clés ou nous écraserons les données existantes. Au lieu de cela, nous pouvons utiliser la syntaxe de l'espace de noms en utilisant un : séparateur et donnant à chaque title ou author saisir une key numérique unique :

> 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

Maintenant, en utilisant GET nécessite l'ajout de la key numérique unique aussi :

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

Récupération de toutes les clés existantes

Il s'avère que chaque SET la commande que nous avons émise ci-dessus a créé une nouvelle key unique dans notre base de données Redis. Pour obtenir une liste de toutes les keys actuelles qui existent, il suffit d'utiliser les KEYS commande :

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

En suivant les KEYS avec un astérisque (* ) - qui agit comme une recherche générique - nous demandons à Redis de récupérer toutes les clés du système. Ainsi, nous ne voyons pas seulement nos deux title originaux et author clés mais aussi les quatre versions énumérées qui ont suivi également.

La syntaxe suivant KEYS peut être utilisé pour rechercher des mots ou des phrases spécifiques dans la clé, ou également la correspondance exacte. Ici, nous voulons toutes les clés contenant le texte 'title' :

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

ATTENTION :Comme mentionné dans la documentation officielle, il est conseillé d'éviter d'utiliser les KEYS sur de très grandes bases de données, mais surtout évitez de l'utiliser dans un environnement de production. Depuis KEYS renvoie potentiellement toutes les clés du système, cela peut avoir un impact négatif considérable sur les performances.