Redis pour gérer la réplication du stockage

Redis pour gérer la réplication du stockage

Redis est une plate-forme de base de données en mémoire simple mais puissante avec des cas d’utilisation allant de la gestion de session, des files d’attente et du pub/sub au cache à usage général. Avec son persistance et capacités de réplication en mémoire, Entreprise Redis est également utilisé comme magasin de données principal.

En tant que pigiste, j’utilise fréquemment Redis pour surmonter des problèmes uniques. Dans un projet, notre cas d’utilisation était simple : je voulais répliquer le contenu d’une partition de système de fichiers avec une structure fixe et bien définie : à la racine du système de fichiers, nous avions un ensemble fixe de répertoires, chacun avec plus d’un millions de fichiers. Notre solution précédente exécutait deux processus en parallèle, 24h/24 et 7j/7 pour identifier les fichiers modifiés. Le premier processus a analysé tout le contenu du fichier et identifié le contenu modifié depuis la réplication précédente. Une tâche s’exécutait une fois toutes les 24 heures pour répliquer les fichiers modifiés. Le deuxième processus a indexé tous les fichiers qui ont été répliqués avec succès.

Rahul Image 1

Dans notre solution précédente, nous utilisions une base de données SQL pour stocker les métadonnées du fichier (telles que le nom, la taille, les autorisations, le chemin, etc.) et toutes les informations relatives aux fichiers modifiés. La tâche de réplication planifiée a interrogé la base de données pour extraire la liste des fichiers modifiés, puis a répliqué le contenu sur un serveur distant. Après la réplication, il a mis à jour la base de données SQL, marquant les fichiers comme “copiés”, après quoi le processus d’indexation a récupéré la liste marquée pour indexer le contenu du fichier.

Redis à la rescousse

Notre conception précédente présentait des inconvénients majeurs : nous devions écrire beaucoup de code pour enregistrer/récupérer/modifier les données dans la base de données SQL, et au fur et à mesure que la base de données grandissait, nous devions créer un mécanisme pour élaguer les données. Au fur et à mesure que les frais généraux opérationnels devenaient importants, nous avons commencé à chercher des moyens de nous libérer de cette architecture.

C’est alors que nous avons trouvé Redis. Redis a instantanément résolu bon nombre de nos problèmes. Dans notre nouvelle solution, nous avons utilisé la fonctionnalité Redis pub/sub pour notifier nos différents processus des nouvelles détections. Le processus d’analyse a publié les détails du ou des fichiers modifiés sur un canal Redis. Le processus de réplication s’est abonné à ce canal et a répliqué le fichier dès qu’il a été notifié. Ensuite, le processus de réplication a notifié le processus d’indexation (via un autre canal Redis pub/sub). Ce système a éliminé le besoin d’exécuter une tâche une fois par jour et a plutôt exécuté la réplication comme un processus continu. Nous nous sommes également épargnés les tracas du nettoyage de la base de données SQL !

Avant d’envisager le modèle pub/sub Redis, nous avons également envisagé RabbitMQ, Kafka, etc. Chacun était bon mais nécessitait beaucoup de travail de notre côté, avec un peu de courbe d’apprentissage. Aucun n’était aussi polyvalent et facile à utiliser que Redis.

En adoptant Redis, nous avons découvert bon nombre de ses autres avantages. Nous avons commencé à utiliser des structures de données intégrées telles que des listes, des hachages et des ensembles pour effectuer des analyses. Par exemple, nous voulions connaître la fréquence des modifications apportées aux fichiers et aux répertoires, et quelles applications ont effectué ces modifications. Nous avons utilisé Redis et ses structures de données pour recueillir ces informations. Nous l’avons ensuite transmis au processus d’indexation et enrichi les métadonnées indexées avec des données d’analyse.

Démarrer avec Redis est extrêmement simple. Vous pouvez vous inscrire gratuitement à Redis Cloud sur : https://redis.com/redis-enterprise-cloud-free-30-mb-plan

Il s’agit d’un article invité de Rahul, consultant indépendant et utilisateur de Redis Enterprise dans le cadre de son travail contractuel.

Development Source

Related Posts

RLEC 4.2.1 apporte des contrôles granulaires à la haute disponibilité et aux performances

RLEC 4.2.1 apporte des contrôles granulaires à la haute disponibilité et aux performances

Comment HolidayMe utilise Redis Enterprise comme base de données principale

Comment HolidayMe utilise Redis Enterprise comme base de données principale

Annonce de RedisGears 1.0 : un moteur sans serveur pour Redis

Annonce de RedisGears 1.0 : un moteur sans serveur pour Redis

Clés Redis dans la RAM |  Redis

Clés Redis dans la RAM | Redis

No Comment

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *