Maison > Article > base de données > Surveillance et gestion de la mémoire Redis
Toutes les données Redis sont stockées en mémoire, la surveillance et la gestion de la mémoire sont donc très importantes pour Redis. Parlons de la mémoire Redis sous trois aspects : la surveillance, la gestion et l'optimisation de la mémoire.
Surveillance de la mémoire
redis nous fournit la commande info memory pour afficher l'utilisation de la mémoire. Cette commande affiche beaucoup de données, nous n'examinons ici que certaines des plus importantes.
used_memory:1146648 (quantité de mémoire allouée par l'allocateur Redis)
used_memory_human:1,09M (affiché dans un format lisible)
used_memory_rss:4358144 (Mémoire totale occupée par redis)
used_memory_rss_human:4.16M (Affichage lisible de la mémoire totale occupée par redis)
used_memory_peak:1229448 (userd_memory_peak Peak)
used_memory_peak_human:1.17M
used_memory_overhead:857036 (tampon, mémoire occupée par arriéré, etc.)
used_memory_startup:791384 (mémoire consommée par le démarrage de Redis)
used_memory_dataset:289612 (mémoire occupée par les données Redis)
used_memory_lua:37888 (mémoire consommée par le script lua)
used_memory_lua_human:37.00K (affichage lisible)
mem_fragmentation_ratio : 4,02 (taux de fragmentation de la mémoire, used_memory_rss / used_memory)
Lorsque mem_fragmentation_ratio est supérieur à 1, cela indique qu'il y a une fragmentation de la mémoire. Plus la valeur est faible, plus elle est grave. le taux de fragmentation. Si l'application le permet, redis peut être redémarré pour réduire le taux de fragmentation. Lorsqu'il est inférieur à 0, il faut être très prudent, cela signifie que la mémoire n'est pas suffisante et qu'une partie du swap est utilisée.
Gestion de la mémoire
Il est généralement recommandé de définir une limite supérieure de mémoire pour Redis. Il existe deux façons de modifier maxmory
<.>127.0.0.1:6379> config set maxmemory 1G OK 127.0.0.1:6379> config rewrite OKDéfinir la mémoire maximale a deux fonctions. Premièrement, elle peut limiter la taille de la mémoire occupée par Redis pour l'empêcher de dépasser la taille de la mémoire physique. De plus, lorsque la mémoire maximale est définie et que Redis dépasse la mémoire maximale, la stratégie de recyclage de mémoire peut être déclenchée (généralement utilisée dans les scénarios de mise en cache) Redis peut ajuster dynamiquement la mémoire maximale, ce qui est très utile lorsque le serveur mémoire Si cela ne suffit pas, vous devez augmenter la mémoire. Lorsque la mémoire du serveur augmente, ajustez dynamiquement la mémoire de Redis. De plus, il existe plusieurs configurations de la politique de recyclage de la mémoire de Redis (maxmemory-policy). Deux mots apparaissent fréquemment, LRU et LFU, et leurs significations sont les suivantes :
Optimisation de la mémoireLa stratégie de recyclage Redis mentionnée ci-dessus, c'est une stratégie de suppression passive, nous pouvons supprimer activement ce Clés qui n'ont pas été consultées depuis longtemps. Vous pouvez utiliser l'analyse pour parcourir les clés, puis utiliser l'objet ideltime pour afficher le temps d'inactivité des clés et supprimer les clés qui n'ont pas été consultées depuis longtemps.
De plus, les objets clé-valeur peuvent également être réduits pour réduire l'utilisation de la mémoire.
127.0.0.1:6379> scan 0 1) "272" 2) 1) "story:course:3915" 2) "story:course:1681" 3) "story:course:4982" ……
Par exemple, la clé ci-dessus peut être modifiée en : sy:cos:id pour réduire la longueur de la clé. Pour les valeurs , des techniques de compression peuvent être utilisées pour réduire la longueur de la valeur. (La compression augmentera la pression sur le CPU et pourra être appliquée de manière appropriée en fonction des applications spécifiques)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!