Blog

Persistance Redis et paramètres de cache

Chargement...

10 min de lecture

Persistance Redis et paramètres de cache

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 bénéficie de nouvelles options de configuration. Vous pouvez désormais contrôler les modes de persistance et 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’entre eux.

Si vous n’êtes pas encore utilisateur de Scalingo, vous pouvez découvrir comment utiliser notre offre d’hébergement Redis ici.

La base de données Redis

Redis est une base de données clé-valeur très performante. Sa particularité est de stocker toutes les données en mémoire (RAM) afin d’éviter les accès disque, plus lents. L’inconvénient de ce fonctionnement est que la RAM est volatile et que vous pouvez subir une perte de données en cas d’incident sur le processus Redis ou sur son hôte. Pour éviter des pertes de données importantes, Redis propose plusieurs mécanismes de persistance sur disque. Il existe deux modes de persistance : le mode snapshot et la persistance forte. Ils représentent chacun un compromis différent entre performance et fiabilité. Le choix du mode de persistance Redis est donc une décision stratégique pour les développeurs.

Pendant longtemps, Scalingo proposait un modèle de persistance par défaut qui n’était pas configurable. C’est désormais terminé !

Persistance par snapshot (RDB)

Le premier mode, et celui activé par défaut, est le mode snapshot (également appelé RDB). Il offre un compromis entre performance et persistance. Les données sont sauvegardées sous forme de fichiers .rdb sur disque de manière périodique, en fonction d’un certain nombre d’opérations d’écriture, et ce de manière asynchrone. Cela signifie qu’en cas d’incident, les données les plus récentes peuvent être perdues. Voici les règles de sauvegarde choisies par Scalingo :

  • Toutes les 900 secondes si au moins 1 opération d’écriture a eu lieu

  • Toutes les 300 secondes si au moins 10 opérations d’écriture ont eu lieu

  • Toutes les 60 secondes si au moins 10000 opérations d’écriture ont eu lieu

Persistance forte (AOF)

Le second mode offre le plus haut niveau de persistance pour Redis (également appelé AOF). Toute commande impactant les données est enregistrée de manière synchrone dans un fichier. En cas d’incident, Redis rejoue les opérations enregistrées afin de reconstruire l’état de la base de données.

Le cas d’usage typique est celui où Redis est utilisé comme base clé-valeur. On peut par exemple imaginer les commentaires d’un article de blog stockés dans une liste Redis. Perdre ces commentaires suite à un redémarrage inattendu de Redis n’est pas acceptable, et activer le mode AOF est alors une bonne option.

Alors, quel mode de persistance choisir ?

Si vous recherchez un niveau de sécurité des données équivalent à celui d’une base SQL classique, vous devriez utiliser à la fois AOF et RDB.

Si la sécurité de vos données est importante, mais que vous pouvez tolérer la perte de quelques minutes de données en cas d’incident, vous pouvez simplement utiliser RDB seul, ce qui offrira de meilleures performances.

Quel que soit le mode choisi, les sauvegardes déclenchées par notre système génèrent un snapshot RDB de la base de données à distance. Ce snapshot est directement envoyé vers nos systèmes de sauvegarde, où il est chiffré puis archivé.

Mode cache

La dernière configuration disponible concerne la durée de conservation des données dans Redis. Lorsque le mode cache est activé, si la mémoire est pleine, Redis supprime automatiquement les données les moins utilisées afin de libérer de la mémoire pour les données les plus récentes. Soyez vigilant : toutes les données peuvent être supprimées. N’utilisez pas votre instance Redis pour stocker des informations importantes dans ce mode.

Un cas d’usage typique est celui de la page d’accueil et du blog Scalingo que vous consultez actuellement. Redis y est utilisé comme cache pour des fragments HTML. Dans ce cas, il est acceptable de supprimer les données les plus anciennes et de les recalculer si nécessaire.

Cette fonctionnalité repose sur deux paramètres de Redis :

  • maxmemory : Quantité de données acceptée par Redis avant de commencer à en supprimer. Elle est définie en fonction de la mémoire disponible dans le plan de base de données choisi.

  • maxmemory-policy : Définie sur allkeys-lru, ce qui signifie que les clés les moins récemment utilisées seront supprimées en priorité lorsque la limite maxmemory est atteinte.

Modifier la configuration Redis sur Scalingo

Modifier ces paramètres sur une base Redis hébergée sur Scalingo est très simple : il suffit de se rendre dans l’onglet « Advanced » du dashboard de votre base de données.

Scalingo Redis advanced configuration

Il vous suffit ensuite d’activer ou désactiver les options via les boutons prévus à cet effet. Les modifications sont appliquées automatiquement et ne nécessitent pas de redémarrage de la base.

Conclusion

Vous pouvez désormais configurer votre modèle de persistance par défaut si vous utilisez Redis sur Scalingo.

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

  • Si vous recherchez un niveau de sécurité des données équivalent à celui d’une base SQL classique, vous devriez utiliser à la fois AOF et RDB.

  • Si la sécurité de vos données est importante, mais que vous pouvez tolérer la perte de quelques minutes de données en cas d’incident, vous pouvez simplement utiliser RDB seul, ce qui offrira 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égradé arrière-plan section

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égradé arrière-plan section

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égradé arrière-plan section

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.