Maison  >  Article  >  base de données  >  Quelle est la structure des données Redis ?

Quelle est la structure des données Redis ?

PHPz
PHPzavant
2023-05-28 10:16:291135parcourir

Redis est une base de données clé-valeur hautes performances. L'émergence de Redis a largement compensé les défauts du stockage de valeurs-clés tel que Memcached, et peut jouer un très bon rôle complémentaire aux bases de données relationnelles dans certaines situations.

Quelle est la structure des données Redis ?

1. Chaîne

Le type de chaîne est la structure de données la plus basique de Redis. Premièrement, la clé est la chaîne. type De plus, plusieurs autres structures sont construites sur la base du type chaîne, de sorte que le type chaîne peut servir de base à l'apprentissage des quatre autres structures de données. Le type de chaîne peut en réalité être une chaîne (chaîne simple, chaîne complexe (xml, json), nombre (entier, nombre à virgule flottante), binaire (image, audio, vidéo)), mais le maximum ne peut pas dépasser 512 Mo.

Scénario d'utilisation : Fonction Cache : Le scénario d'utilisation le plus classique des chaînes, redis est la couche cache, Mysql est la couche de stockage, la plupart des données de requête sont obtenues à partir de redis, car redis a la fonctionnalité de prenant en charge une concurrence élevée, la mise en cache peut donc généralement jouer un rôle dans l'accélération de la lecture et de l'écriture et dans la réduction de la pression back-end. (La raison pour laquelle Redis a les caractéristiques de prendre en charge une concurrence élevée sera expliquée dans le prochain article). Compteur : de nombreuses applications utilisent Redis comme outil de base pour le comptage. Il peut implémenter des fonctions de comptage rapide et de mise en cache des requêtes, et les données peuvent être transférées vers d'autres sources de données en une seule étape. Le composant principal du système de comptage de lectures vidéo est Redis, qui est utilisé pour compter le nombre de lectures vidéo. Session partagée : pour des raisons d'équilibrage de charge, les services distribués équilibreront l'accès aux informations utilisateur sur différents serveurs. Les utilisateurs devront peut-être se reconnecter pour actualiser leur accès. Pour éviter ce problème, Redis peut être utilisé pour gérer de manière centralisée les sessions utilisateur. mode, tant que la haute disponibilité et l'évolutivité de redis sont assurées, chaque fois que les mises à jour des utilisateurs ou les informations de connexion sont obtenues directement à partir de redis. Limite de vitesse : Pour des raisons de sécurité, les utilisateurs doivent saisir un code de vérification de téléphone portable à chaque fois qu'ils se connectent. Afin d'éviter que l'interface SMS ne soit fréquemment consultée, la fréquence à laquelle les utilisateurs obtiennent des codes de vérification par minute sera limitée.

2. Hash

Dans Redis, le type de hachage fait référence à la clé elle-même et à une structure de paire clé-valeur, telle que value={{field1,value1},&hellip ;…fieldN,valueN}}

La structure de hachage est plus intuitive que la sérialisation de chaîne et plus pratique pour les opérations de mise à jour, elle est donc plus adaptée à la mise en cache des informations. Par conséquent, il est souvent utilisé pour la gestion des informations utilisateur, etc., mais le type de hachage est différent de la base de données relationnelle. Le type de hachage est clairsemé, tandis que la base de données relationnelle est complètement structurée. La base de données relationnelle peut effectuer des requêtes relationnelles complexes et redis. Pour simuler des requêtes relationnelles complexes, le développement est difficile et les coûts de maintenance sont élevés.

3. Liste

Le type de liste est utilisé pour stocker plusieurs chaînes ordonnées Chaque chaîne de la liste devient un élément. power - 1 élément. Dans Redis, vous pouvez insérer (pubsh) et pop (pop) aux deux extrémités de la table de file d'attente. Vous pouvez également obtenir une liste d'éléments dans une plage spécifiée, obtenir des éléments dans la table sous un index spécifié, etc. La liste est une structure de données relativement flexible qui peut agir comme une pile et une file d'attente et comporte de nombreux scénarios d'application en développement réel.

Les listes ont des éléments ordonnés, vous pouvez donc utiliser des indices d'index pour obtenir un ou plusieurs éléments. Les éléments de la liste peuvent être répétés.

Scénario d'utilisation : File d'attente de messages : la combinaison de commandes lpush+brpop de Redis peut réaliser une file d'attente de blocage. Le client producteur utilise lupsh pour insérer des éléments du côté gauche de la liste, et plusieurs clients consommateurs utilisent la commande brpop. Lors du blocage, "saisir" les éléments à la fin de la liste, plusieurs clients assurent l'équilibrage de charge et la haute disponibilité de la consommation clipboard.png modèle de file d'attente de messages↑ liste d'articles : chaque utilisateur a sa propre liste d'articles, qui doit maintenant être affichée dans les pages. Liste d'articles, vous pouvez envisager d'utiliser une liste pour le moment. La liste est non seulement ordonnée, mais prend également en charge l'obtention d'éléments en fonction de la plage d'index.

4. Collection

Le type collection est également utilisé pour enregistrer les éléments de plusieurs chaînes, mais contrairement à la liste, les éléments en double ne sont pas autorisés dans la collection, et dans la collection Les éléments ne sont pas ordonnés et ne peuvent pas être obtenus via des indices d'index. En plus de prendre en charge les ajouts, suppressions, modifications et recherches dans la collection, redis prend également en charge les ensembles d'intersection, d'union et de différence de plusieurs collections, et les types de collection peuvent être utilisés. correctement, qui peut être utilisé pour résoudre de nombreux problèmes pratiques dans le développement réel.

Scénarios d'utilisation : Balise : Scénarios d'utilisation typiques pour les types de collections. Par exemple, un utilisateur est plus intéressé par le divertissement et le sport, et un autre peut être intéressé par les actualités. Ces intérêts sont des balises. être utilisé pour obtenir des personnes avec les mêmes tags et tags des passe-temps communs des utilisateurs. Ces données sont importantes pour l'expérience utilisateur et la fidélité de l'utilisateur. La relation entre les utilisateurs et les balises doit être maintenue dans la même transaction pour éviter que certaines commandes échouent et provoquent une incohérence des données

5. Ensembles ordonnés

Les ensembles ordonnés sont inévitablement liés aux ensembles. Ils conservent la fonctionnalité selon laquelle les ensembles ne peuvent pas avoir de membres en double, mais la différence est que les éléments des ensembles ordonnés peuvent être triés, mais ils sont différents des listes. L'utilisation d'indices d'index comme base de tri consiste à définir un score pour chaque élément comme base de tri. (Les éléments d'un ensemble ordonné ne peuvent pas être répétés, mais csore peut être répété, tout comme le nombre d'élèves d'une classe ne peut pas être répété, mais leurs résultats aux tests peuvent être les mêmes).

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