DBAtlas · Atlas d'exploitation des bases de données

Trouver les grosses clés (--bigkeys, --memkeys, MEMORY USAGE)

RedisMémoire

Commande

# Largest keys per type by element count:
redis-cli -h redis1 -p 6379 --bigkeys -i 0.01
# By memory size:
redis-cli -h redis1 -p 6379 --memkeys -i 0.01
# Size and length together, top 20 keys (redis-cli 7.4+):
redis-cli -h redis1 -p 6379 --keystats --top 20 -i 0.01
# Memory usage (SAMPLES 0: all elements) and encoding of a single suspicious key:
redis-cli -h redis1 -p 6379 MEMORY USAGE kullanici:1001:sepet SAMPLES 0
redis-cli -h redis1 -p 6379 OBJECT ENCODING kullanici:1001:sepet

Ce que fait la commande

Parcourt l'espace de clés avec SCAN et signale, par type, les clés ayant le plus d'éléments et le plus de mémoire ; affiche la consommation mémoire réelle et l'encodage d'une clé suspecte.

Quand l'utiliser

Quand la mémoire croît de façon inattendue, qu'une seule commande (HGETALL, SMEMBERS, DEL) provoque de la latence, ou qu'un nœud d'un cluster utilise plus de mémoire que les autres.

Attention

Le parcours utilise SCAN et ne bloque pas le serveur mais parcourt tout l'espace de clés ; -i 0.01 marque une pause tous les 100 appels SCAN pour réduire la charge. Supprimer une grosse clé avec DEL bloque le thread principal ; utilisez UNLINK. MEMORY USAGE avec SAMPLES 0 est en O(N) sur les grandes collections. L'exécuter sur un réplica ne charge pas le master.

Ouvrir dans DBAtlas →

Voir aussi