Redis est un stockage de données basé sur la mémoire, donc la gestion de la mémoire a un impact important sur les performances du système. Si les données sont continuellement stockées en mémoire, un problème de manque de mémoire peut survenir. Dans ce post, nous examinerons les principales configurations et méthodes pour la gestion de la mémoire de Redis et l'optimisation des performances.
1. Importance de la gestion de la mémoire de Redis
Redis stocke toutes les données en mémoire pour un traitement rapide. Si un grand volume de données est stocké ou si des opérations d'écriture se produisent en continu, un manque de mémoire peut entraîner une diminution des performances. Pour prévenir ce type de problème, Redis offre des maxmemory
et maxmemory-policy
réglages.

2. Paramétrage de la limite de mémoire : maxmemory
Pour limiter l'utilisation maximale de la mémoire, configurez maxmemory
. Ce réglage permet de spécifier clairement la capacité de mémoire que Redis peut utiliser. Si le réglage maxmemory
n'est pas configuré, Redis peut utiliser jusqu'à la capacité de mémoire du système.
maxmemory 256mb # Par exemple : réglage à 256MB
Avec ce réglage, si la limite de mémoire spécifiée est dépassée, Redis peut automatiquement supprimer les anciennes données en fonction de la politique de suppression de données.
3. Paramétrage de la politique de suppression de mémoire : maxmemory-policy
La politique qui détermine quelles données supprimer lorsque la limite de mémoire est dépassée est maxmemory-policy
. Redis offre différentes politiques de suppression, avec les principales options suivantes :
- noeviction : refuse de stocker de nouvelles données pour minimiser la perte de données
- allkeys-lru : supprime la clé la moins récemment utilisée parmi toutes les clés, idéale pour un cache
- volatile-lru : supprime la clé la moins récemment utilisée parmi les clés ayant une expiration
- allkeys-random : supprime aléatoirement des données parmi toutes les clés
- volatile-ttl : supprime les clés avec le temps d'expiration le plus court
Par exemple, pour configurer la politique LRU pour supprimer les anciennes données parmi toutes les clés, vous pouvez le régler comme suit :
maxmemory-policy allkeys-lru
4. Paramètres d'optimisation de la mémoire : maxmemory-samples
En choisissant l'option maxmemory-samples
, vous déterminez le nombre d'échantillons à prélever lors de l'application de la politique de mémoire, la valeur par défaut étant 5
. Augmenter le nombre d'échantillons permet d'appliquer une politique plus précise mais peut consommer davantage de ressources CPU.
maxmemory-samples 5
5. Réglage du TTL pour la compression et la suppression des données
Redis permet de définir un TTL (temps d'expiration) pour chaque clé, et lorsqu'une clé expire, elle est automatiquement supprimée, libérant ainsi de la mémoire. Cela est utile pour la gestion des sessions ou les données de cache.
EXPIRE <key> <seconds> # Par exemple : expiration de session_data après 1 heure
Les données configurées avec un TTL sont supprimées automatiquement après un certain temps, ce qui est efficace pour économiser de la mémoire.
6. Commandes de surveillance de la mémoire et de vérification des performances
Redis fournit des commandes pour surveiller l'état de la mémoire et vérifier les performances.
- INFO memory : vérifie l'utilisation totale de la mémoire
- MEMORY USAGE <key> : vérifie l'utilisation de la mémoire d'une clé spécifique
- MEMORY STATS : fournit des statistiques détaillées sur la mémoire
- SLOWLOG : vérifie les commandes lentes pour évaluer les performances
redis-cli INFO memory
redis-cli MEMORY USAGE session_data
redis-cli SLOWLOG GET
7. Exemple pratique : Optimisation de la mémoire Redis pour les données de cache et les files d'attente de travail
Dans Redis, pour le stockage des données de cache, vous pouvez utiliser la politique allkeys-lru
pour supprimer automatiquement les anciennes données. En revanche, pour des cas où la conservation des données est importante, comme dans une file d'attente de travail, vous pouvez configurer la politique noeviction
et activer la fonctionnalité AOF (Append-Only File) pour garantir la récupération des données.
maxmemory 256mb
maxmemory-policy allkeys-lru # Idéal pour les données de cache
appendonly yes
appendfsync everysec
maxmemory-policy noeviction # Idéal pour la file d'attente de travail
En conclusion
Nous avons examiné les méthodes de gestion de la mémoire et d'optimisation des performances de Redis. Étant donné que Redis est une base de données basée sur la mémoire, il est important de configurer correctement la gestion de la mémoire, ce qui permet de réguler les performances et la conservation des données. Dans le prochain article, nous aborderons la façon d'exécuter un conteneur Redis en utilisant Docker. Voyons comment configurer Redis comme un conteneur indépendant pour maintenir une conservation des données efficace et des performances optimales.
Add a New Comment