Maison  >  Article  >  base de données  >  Introduction à la requête relationnelle dans Redis

Introduction à la requête relationnelle dans Redis

尚
avant
2020-04-18 09:05:202445parcourir

Introduction à la requête relationnelle dans Redis

Cet article explique comment Redis enregistre les données relationnelles et comment utiliser les requêtes de correspondance, de plage et floues avec des exemples.

1. Stockage des données relationnelles

Prenons l'objet Staff comme exemple dans une base de données relationnelle ou un produit de grille mémoire comme GridGain (la couche inférieure utilise le stockage en mode mémoire de la base de données H2. ), nous sauvegardons les données de l'objet sous forme de tableau. Étant donné que la grille mémoire est mise en cache en fonction des objets, une colonne supplémentaire (colonne Personnel) est nécessaire pour enregistrer l'encodage de l'objet entier, tel que le format binaire sérialisé ou JSON, etc., afin qu'il puisse être directement renvoyé à l'application pour désérialisation.

Dans Redis, nous pouvons utiliser id comme identifiant unique et l'enregistrer en utilisant trois structures de données : clé-valeur, hachage et zSet. La valeur-clé consiste à enregistrer l'identifiant et l'objet entier. Après avoir déterminé la plage d'identifiants, l'objet peut être renvoyé au client en fonction de celle-ci.

Introduction à la requête relationnelle dans Redis

2. Requête correspondante

L'utilisation de hget ou hmget de la table de hachage peut réaliser dept='IT' ou dept in ('IT', 'QA ' ) Il s'agit d'une requête de correspondance exacte à valeur unique ou à valeurs multiples. Après avoir obtenu la liste d'identifiants, interrogez la valeur-clé pour obtenir l'objet.

3. Requête de plage

Parce que nous enregistrons l'âge en tant que score de zSet et que la valeur est id, nous pouvons utiliser la méthode zrangeByScore de zSet pour obtenir la valeur du score dans un certain intervalle.

4. Requête floue

Après Redis 2.8.9, zSet a ajouté une méthode très utile zrangeByLex Nous enregistrons les scores sous la forme 0 et la valeur est au format name:id. Utiliser zrangeByLex Obtenez la valeur d'une lettre dans une certaine plage. Par exemple, le nom zrangeByLex [A, (F, vous pouvez interroger Allen, Aaron, Carter.

5. Requête de pagination

En même temps, zrangeByLex prend également en charge la requête de pagination et la syntaxe est similaire à limit start, offset.

6. Limitations

Les exemples ci-dessus illustrent comment plusieurs requêtes courantes sont implémentées dans Redis, mais après tout, Redis n'est qu'un stockage clé-valeur, donc il a de nombreuses limitations. >Par exemple :

1) Il est impossible d'implémenter une requête avec plusieurs conditions, telles que age>25 ET un nom comme 'A%'. Si vous souhaitez l'implémenter, vous en avez besoin de plusieurs. commandes et calculer l’union ou l’intersection.

2) Les requêtes floues en chinois sont plus difficiles.

Pour plus de connaissances sur Redis, veuillez faire attention à la colonne

Tutoriel d'introduction à Redis

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer