AccueilTechniqueStockage → Redis

    Redis

    Fonctionnement🔗

    Redis est un système de gestion de base de données qui a la particularité de conserver les informations exclusivement selon le format d’un dictionnaire « clé-valeur ». L’une de ses caractéristiques est de charger toute sa base de données dans sa RAM, ce qui le rend particulièrement rapide.

    Historique🔗

    Le déploiement de notre première instance de Redis en production remonte au 2 janvier 2022 avec nitter-redis, lorsqu’il est devenu une dépendance du service Nitter. Nous l’utilisons par la suite pour améliorer les performances de notre service Nextcloud. Les deux instances sont séparées et sont utilisées exclusivement pour servir de cache pour ces deux services.

    Installation🔗

    Nous utilisons l’image Redis officielle, variante alpine.

    Contrairement à PostgreSQL, nous ne mutualisons pas les bases de données de Redis sur une seule instance, pour plusieurs raisons :

    • Redis conserve sa base de données dans la RAM : centraliser toutes les données dans une seule instance pourrait entraîner un usage disproportionné de RAM pour un seul conteneur et compliquer une intervention technique sur la base de données d’un service spécifique ;
    • Redis consomme très peu de ressources à vide, ce qui le rend facile à déployer ;
    • Le processus de mise à jour de Redis n’est pas aussi complexe que celui de PostgreSQL ;
    • Peu de services ont besoin de Redis sur notre infrastructure ; les mises à jour sont donc facilement réalisables.

    Tests🔗

    Il est possible d’inspecter le fonctionnement de Redis à l’aide du client intégré dans le conteneur :

    docker exec -it nitter-redis ash
    redis-cli -h REDIS_HOSTNAME -p REDIS_PORT -a REDIS_PASSWORD
    127.0.0.1:6379> PING
    PONG
    

    Consommation de ressources🔗

    La consommation en RAM de ce service dépend intrinsèquement de la taille de sa base de données et tend donc à augmenter avec le temps, de 10 MB à 300 MB ou plus. Sa consommation de CPU reste très faible.

    Précautions🔗

    Comme tous les autres services de bases de données, son port ne doit pas être exposé à un réseau public et la connexion à ce service doit être sécurisée. Par défaut, Redis ne demande pas de mot de passe lors de la connexion pour l’accès à la base de données ; il est préférable d’en paramétrer un.

    Entretien🔗

    Suppression de la base de données🔗

    Nous utilisons Redis comme un cache, sa base de données peut donc être supprimée de temps à autres selon sa taille. Il est assez fréquent que la base de données de Nitter atteigne sa limite de 300 MB en raison de son utilisation importante, auquel cas nous supprimons purement et simplement sa base de données pour repartir sur une base vierge, ce qui n’impacte pas les performances de Nitter.

    Mise à jour🔗

    Pour mettre à jour notre image de Redis, il suffit de télécharger la nouvelle image et de redémarrer le conteneur. Il est préférable de redémarrer le service qui dépend de Redis par la même occasion.