Eviction, Ablauf und OOM-Fehler diagnostizieren
RedisSpeicherBefehl
INFO stats
# Fields to check: evicted_keys, expired_keys, expired_stale_perc, keyspace_hits, keyspace_misses, total_eviction_exceeded_time (7.0+)
INFO keyspace
CONFIG GET maxmemory
CONFIG GET maxmemory-policy
INFO memory
# The value that triggers eviction: used_memory - mem_not_counted_for_evict, compared with maxmemoryWas es tut
Zeigt die Anzahl verdrängter und abgelaufener Keys, die Cache Hit Ratio, den Anteil der Keys mit TTL und den Speicherwert, der die Eviction auslöst, im Verhältnis zu maxmemory.
Wann einsetzen
Wenn die Anwendung 'OOM command not allowed when used memory > maxmemory' erhält, die Cache Hit Ratio sinkt oder Keys unerwartet zu verschwinden scheinen.
Vorsicht
Mit der Policy noeviction erhalten Schreibbefehle bei Erreichen von maxmemory einen OOM-Fehler, während Lesezugriffe weiter funktionieren. Mit volatile-*-Policies werden Keys ohne TTL nie verdrängt; gibt es keine Keys mit TTL, verhält es sich wie noeviction (expires in INFO keyspace prüfen). Setze maxmemory nicht zu nah an den physischen RAM: Lass Platz für Replikationspuffer und Copy-on-Write beim Fork.