Blog

Paramètres de persistance et de cache Redis

Chargement...

10 min de lecture

Paramètres de persistance et de cache Redis

Vous pouvez désormais contrôler les modes de persistance et de cache de votre base de données Redis.

L'offre Redis as a Service de Scalingo a reçu quelques nouvelles options de configuration. Vous pouvez maintenant contrôler la persistance et les modes de cache de vos bases de données.

Cet article vous guidera à travers les différents modes de persistance et vous donnera des exemples pertinents pour chacun d'eux.

Si vous n'êtes pas encore un utilisateur de Scalingo, vous pouvez découvrir comment utiliser l'hébergement Redis ici.

La base de données Redis

Redis est une base de données clé-valeur haute performance. Sa spécificité est de stocker toutes les données dans la RAM pour éviter les accès lents au disque. Le inconvénient de ce mode de fonctionnement est que la RAM est volatile et que vous pourriez subir une perte de données en cas d'incident sur le processus Redis ou son hôte. Pour prévenir une perte de données importantes, Redis offre plusieurs façons de persister les données sur le disque. Il existe deux modes de persistance : le mode snapshot et la persistance forte. Ils représentent tous deux un compromis différent en termes de performance et de fiabilité. En tant que tel, choisir les paramètres du mode de persistance Redis est une décision stratégique que les développeurs doivent prendre.

Pendant longtemps, Scalingo a choisi un modèle de persistance par défaut que vous ne pouviez pas configurer. C'est de l'histoire ancienne !

Persistance snapshot alias RDB

Le premier, et mode par défaut, est le mode snapshot (également appelé RDB). Il fournit un compromis entre performance et persistance. Les données sont enregistrées sous forme de fichiers .rdb sur le disque périodiquement, en fonction d'un nombre défini d'opérations d'écriture, de manière asynchrone. Cela signifie qu'en cas d'incident, des données récentes sont perdues. Voici les règles de sauvegarde choisies par Scalingo :

  • Chaque 900 secondes si au moins 1 opération d'écriture a eu lieu

  • Chaque 300 secondes si au moins 10 opérations d'écriture ont eu lieu

  • Chaque 60 secondes si au moins 10000 opérations d'écriture ont eu lieu

Persistance forte alias AOF

Le deuxième mode offre à Redis le niveau de persistance le plus élevé (également appelé AOF). Toute commande impactant l'ensemble de données sera enregistrée de manière synchronisée dans un fichier. En cas d'incident, Redis rejoue les opérations enregistrées pour reconstruire l'ensemble de données de la base de données.

Le cas d'utilisation typique est l'utilisation de Redis comme magasin clé-valeur. Nous pouvons imaginer les commentaires sur une page de post de blog étant stockés dans une liste Redis. Perdre des commentaires en raison d'un redémarrage inattendu de Redis n'est pas acceptable et activer le mode AOF semble être une bonne idée.

OK, donc quel mode de persistance devrais-je utiliser ?

Si votre objectif est le même type de sécurité des données que celle fournie par votre base de données SQL typique, vous devriez utiliser à la fois AOF et RDB.

Si vous tenez beaucoup à vos données, mais que vous pouvez vivre avec quelques minutes de perte de données en cas de désastres, vous pouvez simplement utiliser RDB seul, vous obtiendrez de meilleures performances.

Quel que soit la configuration que vous choisissez, les sauvegardes déclenchées par notre système génèrent un instantané RDB de la base de données à distance, l'instantané est directement transmis à nos contrôleurs de sauvegarde qui les chiffrent et les archivent.

Mode cache

La dernière configuration disponible est liée à la durée de stockage des données dans Redis. Lorsque le mode cache est activé, si la mémoire est pleine, Redis supprimera automatiquement les données les moins utilisées pour libérer de la mémoire pour les données les plus récentes. Soyez prudent, car toute donnée peut être supprimée. N'utilisez pas votre instance Redis pour stocker des informations importantes dans ce mode.

Le cas d'utilisation typique est la page d'accueil et le blog de Scalingo que vous parcourez actuellement. Il utilise Redis comme cache pour des fragments HTML. Dans ce cas, nous pouvons nous permettre d'utiliser les données les plus anciennes stockées dans Redis, et de les recalculer si nécessaire.

Cette fonctionnalité utilise deux paramètres de Redis :

  • maxmemory : Montant de données que Redis accepte avant d'en supprimer certaines. Il est fixé à la valeur de la mémoire disponible du plan de base de données que vous avez choisi.

  • maxmemory-policy : Défini à allkeys-lru, ce qui signifie que les clés 'Moins Récemment Utilisées' seront expulsées en premier si le montant de maxmemory est atteint.

Changer la configuration de Redis sur Scalingo

Modifier ces paramètres sur une base de données Redis hébergée Scalingo est aussi simple que d'aller dans l'onglet "Avancé" de votre tableau de bord de base de données.



Scalingo Redis advanced configuration



Il vous suffit de cliquer sur le bouton bascule pour modifier le paramètre. Le paramètre est appliqué automatiquement et ne nécessite pas de redémarrage de la base de données.

Conclusion

Vous pouvez maintenant configurer votre modèle de persistance par défaut si vous choisissez l'hébergement Redis sur Scalingo.

Pour rappel, il existe deux modes : modes snapshot et AOF.

  • Si votre objectif est le même type de sécurité des données que celle fournie par votre base de données SQL typique, vous devriez utiliser à la fois AOF et RDB.

  • Si vous tenez beaucoup à vos données, mais que vous pouvez vivre avec quelques minutes de perte de données en cas de désastres, vous pouvez simplement utiliser RDB seul, vous obtiendrez de meilleures performances.

Photo par Yanko Peyankov sur Unsplash

Etienne Michon, Scalingo

Étienne Michon

Docteur en informatique, Étienne Michon occupe actuellement le poste d'ingénieur R&D chez Scalingo. Il était l'un des premiers employés de Scalingo et il contribue grandement à faire grandir ce blog grâce à ses articles techniques de qualité.

Restez informé

Recevez des articles et des mises à jour de la plateforme dans votre boîte de réception.

Prêt à déployer en toute confiance ?

Découvrez des déploiements sans temps d'arrêt, une mise à l'échelle automatique intelligente et une infrastructure entièrement gérée. Commencez à déployer vos applications sur Scalingo dès aujourd'hui.

Aucune carte de crédit requise • Déployez en quelques minutes • Annulez à tout moment

Déployez une application ou base de données

Commencez à déployer

Rejoignez les équipes qui misent sur une plateforme conçue pour livrer rapidement, opérer sereinement, avec des valeurs européennes et un support humain.

Déployez une application ou base de données

Commencez à déployer

Rejoignez les équipes qui misent sur une plateforme conçue pour livrer rapidement, opérer sereinement, avec des valeurs européennes et un support humain.

Déployez une application ou base de données

Commencez à déployer

Rejoignez les équipes qui misent sur une plateforme conçue pour livrer rapidement, opérer sereinement, avec des valeurs européennes et un support humain.