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

Principaux cas d'utilisation de Redis par types de structure de données de base

Redis, abréviation de Remote Dictionary Server, est un magasin de structure de données clé-valeur en mémoire open source sous licence BSD écrit en langage C par Salvatore Sanfillipo et a été publié pour la première fois le 10 mai 2009. Selon la façon dont il est configuré , Redis peut agir comme une base de données, un cache ou un courtier de messages. Il est important de noter que Redis est un système de base de données NoSQL. Cela implique que, contrairement aux systèmes de base de données pilotés par SQL (Structured Query Language) tels que MySQL, PostgreSQL et Oracle, Redis ne stocke pas les données dans des schémas de base de données bien définis qui constituent des tables, des lignes et des colonnes. Au lieu de cela, Redis stocke les données dans des structures de données, ce qui les rend très flexibles à utiliser. L'hébergement de ScaleGrid pour Redis™* vous permet d'automatiser vos opérations fastidieuses pour une variété de cas d'utilisation Redis différents. Dans ce blog, nous décrivons les principaux cas d'utilisation de Redis selon les différents types de structure de données de base.

Structures de données dans Redis

Regardons quelques-uns des types de données pris en charge par Redis. Dans Redis, nous avons des chaînes, des listes, des ensembles, des ensembles triés et des hachages, que nous allons couvrir dans cet article. De plus, nous avons d'autres types de données tels que des bitmaps, des hyperloglogs et des index géospatiaux avec des requêtes de rayon et des flux. Bien qu'il existe des outils d'interface graphique Redis écrits par la communauté Redis, la ligne de commande est de loin le client le plus important, contrairement aux utilisateurs de bases de données SQL populaires qui préfèrent souvent les systèmes de gestion d'interface graphique, par exemple, phpMyAdmin pour MySQL et PgAdmin pour PostgreSQL.

Regardons de plus près les types de données qui existent dans Redis.

Chaînes Redis

Les chaînes Redis sont le type le plus basique de valeur Redis exploité par tous les autres types de structure de données, et sont assez similaires aux chaînes dans d'autres langages de programmation tels que Java ou Python. Les chaînes, qui peuvent contenir n'importe quel type de données, sont considérées comme binaires sûres et ont une longueur maximale de 512 Mo. Voici quelques commandes utiles pour les chaînes Redis :

Pour stocker une chaîne ‘john ' sous une clé telle que 'étudiant' dans Redis, exécutez la commande :

SET "student" "john"

Pour récupérer la chaîne, utilisez la commande GET comme indiqué :

OBTENIR "étudiant"

Pour supprimer la chaîne contenue dans la clé, utilisez la commande DEL :

DEL "étudiant"

Cas d'utilisation des chaînes Redis

  1. Cache de session : De nombreux sites Web utilisent Redis Strings pour créer un cache de session afin d'accélérer l'expérience de leur site Web en mettant en cache des fragments ou des pages HTML. Étant donné que les données sont stockées temporairement dans la RAM, cet attribut fait de Redis un choix parfait en tant que cache de session. Il est capable de stocker temporairement des données spécifiques à l'utilisateur, par exemple, des articles stockés dans un panier d'achat dans une boutique en ligne, ce qui est crucial pour que vos utilisateurs ne perdent pas leurs données en cas de déconnexion ou de perte de connexion.
  2. Files d'attente : Toute application qui traite de la congestion du trafic, de la messagerie, de la collecte de données, de la gestion des tâches ou du routage des packers doit envisager une file d'attente Redis, car cela peut vous aider à gérer la taille de votre file d'attente en fonction du taux d'arrivée et de départ pour la distribution des ressources.
  3. Utilisation et facturation mesurée : Un cas d'utilisation moins connu pour Redis Strings est la mesure en temps réel pour les modèles de tarification basés sur la consommation. Cela permet aux plates-formes SaaS qui facturent en fonction de l'utilisation réelle de mesurer l'activité de leurs clients, comme dans le secteur des télécommunications où elles peuvent facturer les SMS ou les minutes.

Listes Redis

Les listes contiennent des chaînes qui sont triées par leur ordre d'insertion. Avec les listes Redis, vous pouvez ajouter des éléments en tête ou en queue des listes, ce qui est très utile pour la mise en file d'attente des tâches. S'il y a des travaux plus urgents dont vous avez besoin pour être exécutés, ceux-ci peuvent être placés devant d'autres travaux de priorité inférieure dans la file d'attente. Nous utiliserions la commande LPUSH pour insérer un élément en tête ou à gauche de la chaîne, et la commande RPUSH pour insérer à la fin ou à droite de notre chaîne. Prenons un exemple :

Liste LPUSH x   # maintenant la liste est "x"

Liste LPUSH y   # maintenant la liste est "y","x"

RPUSH liste z   # maintenant la liste est "y","x","z" (notez comment l'élément 'z' a été ajouté à la fin de la liste par la commande RPUSH)

Cas d'utilisation de la liste Redis

  1. Sites de réseaux sociaux : Les plates-formes sociales telles que Twitter utilisent des listes Redis pour remplir leurs fils d'actualités ou leurs flux de page d'accueil, et peuvent personnaliser le haut de leurs flux avec des tweets ou des histoires tendance.
  2. Flux RSS : Créez des flux d'actualités à partir de sources personnalisées où vous pouvez extraire les dernières mises à jour et permettre aux abonnés intéressés de s'abonner à votre flux RSS.
  3. Classements : Des forums comme Reddit et d'autres plates-formes de vote exploitent les listes Redis pour ajouter des articles au classement et trier les entrées les plus votées.

Apprenez à créer votre propre flux Twitter dans nos tweets de mise en cache à l'aide de l'article de blog Node.js, Redis et Socket.io.

Principaux cas d'utilisation de #Redis par types de structure de données de baseClick To Tweet

Ensembles Redis

Les ensembles Redis sont des types de données puissants qui prennent en charge des opérations puissantes telles que les intersections et les unions. Ils ne sont pas dans n'importe quel ordre et sont généralement utilisés lorsque vous souhaitez effectuer un audit et voir les relations entre différentes variables. Les ensembles sont raisonnablement rapides, et quel que soit le nombre d'éléments que vous avez stockés, il faudra le même temps pour ajouter ou supprimer des éléments dans un ensemble. De plus, les ensembles n'autorisent pas les clés en double ou les membres en double, donc une clé ajoutée plusieurs fois dans un ensemble sera simplement ignorée. Ceci est piloté par une fonction appelée SADD qui évite la duplication de plusieurs entrées similaires. L'attribut SADD peut être utilisé lors de la vérification de valeurs uniques, ainsi que pour la planification de tâches exécutées en arrière-plan, y compris les tâches cron qui sont des scripts automatisés.

Ceux-ci sont particulièrement utiles pour analyser le comportement des clients en temps réel pour votre site d'achat en ligne. Par exemple, si vous gérez une boutique de vêtements en ligne, les ensembles triés Redis utilisent une technique d'appariement des relations telles que les unions, les intersections et les soustractions (couramment appliquées dans les diagrammes de Venn) pour donner une image précise du comportement des clients. Vous pouvez récupérer des données sur les habitudes d'achat entre les genres, quels produits vestimentaires se vendent le plus et quelles heures enregistrent les ventes les plus élevées.

Cas d'utilisation des ensembles Redis

  1. Analyse des ventes de commerce électronique : De nombreuses boutiques en ligne utilisent Redis Sets pour analyser le comportement des clients, comme les recherches ou les achats pour une catégorie ou sous-catégorie de produits spécifique. Par exemple, le propriétaire d'une librairie en ligne peut savoir combien de clients ont acheté des livres médicaux en psychologie.
  2. Suivi d'adresse IP : Les ensembles Redis sont un excellent outil pour les développeurs qui souhaitent analyser toutes les adresses IP qui ont visité une page de site Web ou un article de blog spécifique, et pouvoir ignorer tous les doublons pour les visiteurs uniques avec leur fonction SADD.
  3. Filtrage de contenu inapproprié : Pour toute application qui collecte les entrées des utilisateurs, c'est une bonne idée d'implémenter le filtrage de contenu pour les mots inappropriés, et vous pouvez le faire avec Redis Sets en ajoutant les mots que vous souhaitez filtrer à une touche SET et à la commande SADD.

Ensembles triés

Comme leur nom l'indique, les ensembles triés Redis sont une collection de chaînes qui attribuent un ordre à vos éléments et constituent l'une des structures de données les plus avancées de Redis. Ceux-ci sont similaires aux ensembles Redis, sauf que les ensembles n'ont pas d'ordre tandis que les ensembles triés associent chaque membre à un score. Les ensembles triés sont connus pour être très rapides, car vous pouvez renvoyer des listes ordonnées et accéder aux éléments dans les plus brefs délais.

Cas d'utilisation des ensembles triés Redis

  1. Plateformes de questions/réponses : De nombreuses plates-formes de questions-réponses telles que Stack Overflow et Quora utilisent les ensembles triés Redis pour classer les réponses les plus votées pour chaque question proposée afin de garantir que le contenu de la meilleure qualité est répertorié en haut de la page.
  2. Tableaux de bord des applications de jeu : Les applications de jeux en ligne exploitent les ensembles triés Redis pour conserver leurs listes de meilleurs scores, car les scores peuvent être répétés, mais pas les chaînes contenant les détails uniques de l'utilisateur.
  3. Service de planification des tâches : Les ensembles triés Redis sont un excellent outil pour un service de planification de tâches, car vous pouvez associer un score pour classer la priorité d'une tâche dans votre file d'attente. Pour toute tâche pour laquelle aucun score n'a été noté, vous pouvez utiliser l'option WEIGHTS avec une valeur par défaut de 1.
  4. Hachage géographique : L'API d'indexation géographique Redis utilise un ensemble trié pour la technique Geo Hash qui vous permet d'indexer des emplacements en fonction de la latitude et de la longitude, transformant ainsi les données multidimensionnelles en données linéaires.

Hachages Redis

Les hachages Redis sont des mappages entre les champs de chaîne et les valeurs de chaîne. Il s'agit du type de données de référence si vous devez essentiellement créer un conteneur de champs uniques et leurs valeurs pour représenter des objets. Les hachages vous permettent de stocker une quantité décente de champs, jusqu'à 232 - 1 paires champ-valeur (plus de 4 milliards), tout en occupant très peu d'espace. Vous devez utiliser les hachages Redis dans la mesure du possible, car vous pouvez utiliser une petite instance Redis pour stocker des millions d'objets. Vous pouvez utiliser des opérations de commande de hachage de base, telles que get, set, exists, en plus de nombreuses opérations avancées.

Cas d'utilisation des hachages Redis

  1. Profils utilisateur : De nombreuses applications Web utilisent Redis Hashes pour leurs profils utilisateur, car elles peuvent utiliser un seul hachage pour tous les champs utilisateur, tels que le nom, le prénom, l'e-mail, le mot de passe, etc.
  2. Messages d'utilisateurs : Les plateformes sociales comme Instagram exploitent Redis Hashes pour mapper toutes les photos ou publications archivées des utilisateurs à un seul utilisateur. Le mécanisme de hachage leur permet de rechercher et de renvoyer des valeurs très rapidement, d'adapter les données en mémoire et de tirer parti de la persistance des données en cas de panne de l'un de leurs serveurs.
  3. Stocker les métriques multi-locataires : Les applications mutualisées peuvent tirer parti des hachages Redis pour enregistrer et stocker leurs métriques de produits et de ventes de manière à garantir une séparation solide entre chaque locataire, car les hachages peuvent être encodés efficacement dans un très petit espace mémoire.

Qui utilise Redis ?

Redis a trouvé une énorme part de marché dans les secteurs du voyage et de l'hôtellerie, des forums communautaires, des médias sociaux, du SaaS et du commerce électronique, pour n'en nommer que quelques-uns. Certaines des principales entreprises qui utilisent Redis incluent Pinterest, Uber, Slack, Airbnb, Twitter et Stack Overflow. Voici quelques statistiques sur la popularité de Redis aujourd'hui :

  • 4 107 entreprises ont déclaré utiliser Redis sur StackShare
  • 8 759 développeurs ont déclaré utiliser Redis sur StackShare
  • 38 094 utilisateurs de GitHub ont mis en vedette Redis
  • Base de données classée n° 8 sur DB-Engines avec un score de 144,08