Redis - Max Memory & Key Eviction Policy

Vorwort

Damit Redis den maximalen physikalischen Arbeitsspeicher nicht überschreitet, stehen mehrere sogenannte Key Eviction Policies zur Verfügung, welche es ermöglichen, die gespeicherten Keys anhand der Policy definierten Kriterien automatisch zu entfernen, bis das Speicherlimit unterschritten wurde.


Voraussetzungen

  • Redis Server (mit Root-Zugriff)



Konfiguration anpassen

Verbinden Sie sich mit Ihrem Redis Server beispielsweise via SSH und loggen Sie sich als SSH Root-Benutzer ein.

Öffnen Sie die Redis Konfigurationsdatei mit einem Editor Ihrer Wahl, wir nutzen in diesem Fall nano :

nano /etc/redis/redis.conf 


Nach jeder Änderung muss der Redis Dienst neu gestartet werden:

systemctl restart redis-server.service



Max Memory

Die Max Memory Einstellung ermöglicht die Limitierung des von Redis verwendeten Arbeitsspeichers. Suchen Sie in der Konfigurationsdatei nach maxmemory und definieren Sie den gewünschten Wert.


maxmemory 4GB # setzt das Limit auf 4 GiB


Die folgende Tabelle zeigt die möglichen Größenordnungen der maximalen Speichergröße an:

Wert Definition
500MB 500 MiB
1GB 1 GiB
4GB 4 GiB
8GB 8 GiB
12GB 12 GiB
16GB 16 GiB


Die Suffixe mb, gb werden als Binärpräfixe(IEC-Präfixe) interpretiert. Mehr zu Speichergrößen →



Max Memory Policy

Die Max Memory Policy-Einstellung definiert das Löschverhalten von Redis, wenn das Hinzufügen von Datensätzen zur Überschreitung des Max Memory Limits zur Folge hat.


Suchen Sie in der Konfigurationsdatei nach maxmemory-policy und setzten Sie die gewünschte Key Eviction Policy.

maxmemory-policy volatile-ttl # default setting


Key Eviction Policies

Die folgende Tabelle enthält eine Zusammenfassung aller von Redis unterstützten Key Eviction Policies und Ihrer Beschreibung.

Policy Beschreibung
noeviction Keys werden nicht gelöscht, Server gibt eine Fehlermeldung zurück, sobald versucht wird einen Datensatz hinzuzufügen
allkeys-lru Löscht die zuletzt am wenigsten benutzten Datensätze
allkeys-lfu Löscht die zuletzt am häufigsten benutzten Datensätze
allkeys-random Löscht zufällige Datensätze
volatile-lru Löscht die zuletzt am wenigsten benutzten Datensätze, welche ebenfalls abgelaufen sind
volatile-lfu Löscht die zuletzt am häufigsten benutzten Datensätze, welche ebenfalls abgelaufen sind
volatile-random Löscht zufällige Datensätze, die abgelaufen sind
volatile-ttl Löscht abgelaufene Datensätze, mit dem kürzesten Time-To-Live (TTL) Wert


Empfehlungen für spezifische Web-Anwendungen

Web-Anwendung Empfohlene Policy
Shopware 6 volatile-lru
JTL Shop 5 allkeys-lru
Nextcloud allkeys-lru
WordPress allkeys-lru