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 |