Wenn Redis als Cache verwendet wird und der Speicherplatz voll ist, werden alte Daten automatisch entfernt. Memcached funktioniert standardmäßig auf diese Weise und die meisten Entwickler sind damit vertraut. LRU ist der einzige von Redis unterstützte Recycling-Algorithmus
Räumungsstrategie (empfohlenes Lernen: Redis-Video-Tutorial)
Wenn das maximale Speicherlimit (maxmemory) erreicht ist, bestimmt Redis das spezifische Verhalten basierend auf der von maxmemory-policy konfigurierten Richtlinie.
Die aktuelle Version umfasst die von Redis 3.0 unterstützten Strategien:
noeviction: Löschen Sie die Strategie nicht, wenn das maximale Speicherlimit erreicht ist Es wird mehr Speicher benötigt, direkt Fehlermeldung zurückgeben. Die meisten Schreibbefehle führen dazu, dass mehr Speicher belegt wird (mit seltenen Ausnahmen wie DEL).
allkeys-lru: Gilt für alle Schlüssel; löschen Sie zuerst die zuletzt verwendeten (LRU) Schlüssel.
volatile-lru: nur auf den Teil beschränkt, in dem „expire“ eingestellt ist; zuerst den zuletzt verwendeten Schlüssel (LRU) löschen.
allkeys-random: Gemeinsam für alle Schlüssel; einige Schlüssel nach dem Zufallsprinzip löschen.
volatile-random: Nur auf den Teil beschränkt, in dem das Ablaufdatum festgelegt ist. Einige Schlüssel werden zufällig gelöscht.
volatile-ttl: Nur begrenzt auf den Teil, in dem das Ablaufdatum festgelegt ist; Schlüssel mit kurzer Restlaufzeit (Lebensdauer, TTL) werden zuerst gelöscht.
Wenn der Ablaufschlüssel nicht festgelegt ist und die Voraussetzungen nicht erfüllt sind, ist das Verhalten der Strategien volatile-lru, volatile-random und volatile-ttl grundsätzlich dasselbe wie noeviction (keine Löschung).
Sie müssen eine geeignete Räumungsstrategie basierend auf den Merkmalen des Systems auswählen. Natürlich können Sie die Räumungsrichtlinie auch dynamisch über Befehle während des Betriebs festlegen und Cache-Fehler und -Treffer über den INFO-Befehl zur Optimierung überwachen.
Generell:
Bei der Aufteilung in Hot Data und Cold Data wird die Verwendung der Allkeys-lru-Strategie empfohlen. Das heißt, einige der Schlüssel werden häufig gelesen und geschrieben. Wenn Sie sich über die spezifischen Geschäftsmerkmale nicht sicher sind, ist allkeys-lru eine gute Wahl.
Wenn Sie alle Schlüssel in einer Schleife lesen und schreiben müssen oder die Zugriffshäufigkeit jedes Schlüssels ähnlich ist, können Sie die Allkeys-Random-Strategie verwenden, d. h. die Wahrscheinlichkeit, alle Elemente zu lesen und zu schreiben, beträgt fast gleich.
Wenn Sie möchten, dass Redis Schlüssel, die gelöscht werden müssen, basierend auf TTL filtert, verwenden Sie bitte die Strategie volatile-ttl.
Die Hauptanwendungsszenarien der Strategien „Volatile-Lru“ und „Volatile-Random“ sind: Instanzen mit Cache- und persistenten Schlüsseln. Im Allgemeinen sollten für solche Szenarien zwei separate Redis-Instanzen verwendet werden.
Es ist erwähnenswert, dass das Festlegen von „expire“ zusätzlichen Speicher verbraucht, sodass die Verwendung der allkeys-lru-Strategie den Speicher effizienter nutzen kann, da dann die Ablaufzeit nicht mehr festgelegt werden kann.
Weitere technische Artikel zum Thema Redis finden Sie in der Spalte Einführung in das Redis-Datenbanknutzungs-Tutorial, um mehr zu erfahren!
Das obige ist der detaillierte Inhalt vonWas sind die Redis-Cache-Strategien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!