Bash
Pour obtenir la liste des clés en Bash, suivez les étapes suivantes.
Tout d'abord, définissez la fonction wrapper suivante pour simplifier son utilisation (copiez et collez dans shell) :
function memcmd() {
exec {memcache}<>/dev/tcp/localhost/11211
printf "%s\n%s\n" "$*" quit >&${memcache}
cat <&${memcache}
}
Memcached 1.4.31 et supérieur
Vous pouvez utiliser la commande lru_crawler metadump all
pour obtenir le dump (la plupart) des métadonnées de (tous) les éléments dans le cache.
Contrairement à cachedump
, cela ne cause pas de problèmes de performance graves et n'a aucune limite sur la quantité de clés qui peuvent être dump.
Exemple de commande en utilisant la fonction précédemment définie :
memcmd lru_crawler metadump all
Voir : ReleaseNotes1431.
Memcached 1.4.30 et inférieur
Obtenez la liste des fragments en utilisant la commande items statistics, par exemple :
memcmd stats items
Pour chaque classe de fragment, vous pouvez obtenir la liste des éléments en spécifiant l'identifiant de fragment ainsi que le nombre limite (0
- illimité) :
memcmd stats cachedump 1 0
memcmd stats cachedump 2 0
memcmd stats cachedump 3 0
memcmd stats cachedump 4 0
...
Note : Vous devez faire cela pour chaque serveur memcached.
Pour répertorier toutes les clés de tous les fragments, voici la commande en une seule ligne (par serveur) :
for id in $(memcmd stats items | grep -o ":[0-9]\+:" | tr -d : | sort -nu); do
memcmd stats cachedump $id 0
done
Note : La commande ci-dessus pourrait causer des problèmes de performances graves lors de l'accès aux éléments, il n'est donc pas conseillé de l'exécuter en direct.
Remarques :
stats cachedump
ne fait que vider le HOT_LRU
(si je me souviens bien ?), qui est géré par un thread en arrière-plan lorsque l'activité se produit. Cela signifie que sous une version suffisamment récente où l'algo 2Q est activé, vous obtiendrez des vues instantanées de ce qui se trouve dans un seul des LRU.
Si vous voulez tout voir, lru_crawler metadump 1
(ou lru_crawler metadump all
) est la méthode la plus récente mostly-officially-supported qui videra de manière asynchrone autant de clés que vous le souhaitez. vous les obtiendrez hors de l'ordre mais cela touche tous les LRU, et à moins que vous ne supprimiez/remplaciez des éléments plusieurs exécutions devraient donner les mêmes résultats.
Source : GH-405.
Lié :