Verbindungen finden, die den Speicher aufblähen (Output Buffer, Query Buffer, maxmemory-clients)
RedisSpeicherBefehl
INFO clients
# Top 10 connections by tot-mem (tot-mem, omem, qbuf, id, addr, user, cmd, age):
redis-cli -h redis1 -p 6379 CLIENT LIST | awk '{for(i=1;i<=NF;i++){split($i,a,"="); f[a[1]]=a[2]} print f["tot-mem"], f["omem"], f["qbuf"], f["id"], f["addr"], f["user"], f["cmd"], f["age"]}' | sort -rn | head -10
CLIENT LIST TYPE pubsub
CONFIG GET client-output-buffer-limit
# Upper limit for the total memory of all clients (largest clients are closed when exceeded):
CONFIG SET maxmemory-clients 5%Was es tut
Sortiert Verbindungen nach Gesamtspeicher (tot-mem), Output Buffer (omem) und Query Buffer (qbuf); zeigt Pub/Sub-Verbindungen und Pufferlimits; legt eine Gesamtobergrenze für Client-Speicher fest.
Wann einsetzen
Wenn used_memory ohne Datenwachstum steigt, mem_clients_normal hoch aussieht oder ein langsam konsumierender Pub/Sub-/MONITOR-Client den Speicher füllt.
Vorsicht
Ein großes omem deutet meist auf einen Client hin, der Ergebnisse langsam liest (große KEYS-/HGETALL-Antwort, langsamer Pub/Sub-Subscriber, ein offen gelassenes MONITOR). Wird maxmemory-clients überschritten, werden die Clients mit dem meisten Speicher ohne Warnung geschlossen; Replica- und Master-Verbindungen sind ausgenommen, Anwendungsverbindungen können aber abbrechen. Für kritische Verbindungen CLIENT NO-EVICT on verwenden.