Inhaltsverzeichnis
Werfen wir zunächst einen Blick auf den Speicherplatz von Redis. Die Standardnummer ist 16. In redis.conf gibt es eine Konfigurationsparameterdatenbank, um ihn zu steuern. Jede Datenbank verfügt über eine eigene Ablaufpartition, in der die Datenadresse und die Datenablaufzeit gespeichert sind. " >
Heim Datenbank Redis Redis-Löschrichtlinie und Räumungsrichtlinie

Redis-Löschrichtlinie und Räumungsrichtlinie

Aug 28, 2020 pm 05:19 PM
redis

Wissenspunkte in diesem Artikel Abgelaufenes Datenkonzept Richtlinie zur Datenlöschung Räumungsalgorithmus

Vorwort

Kaka hat eine Roadmap zusammengestellt und einen Interviewleitfaden erstellt, um das Schreiben von Artikeln gemäß einer solchen Roadmap vorzubereiten, stellte jedoch später fest, dass es keinen Zusatz gab Wissenspunkte werden hinzugefügt. Ich freue mich auch darauf, dass Ihre Partner mithelfen, einige Informationen hinzuzufügen. Wir sehen uns im Kommentarbereich!

Redis-Löschrichtlinie und Räumungsrichtlinie
Hier Bildbeschreibung einfügen

Abgelaufene Daten

Schauen Sie sich zunächst die drei Schlüsselwerte an, nämlich Geschlecht, Name und Alter.

Die Anweisungen zum Festlegen dieser drei Werte lauten: break- all; color: rgba(59, 170, 0.1); padding: 0px 2px; line-height: 22px; >Setname Kaka Setex Alter 100 24 Setex Sex 10 1set name kaka setex age 100 24 setex sex 10 1

Redis-Löschrichtlinie und Räumungsrichtlinie在redis中我们可以使用ttl来获取某个key的状态,下面我们来使用ttl

Bildbeschreibung hier einfügenttl Erhalten Sie oben jeweils den Status von Name, Alter und Geschlecht

Sie können drei Werte sehen, die -1 775 -2 sind

Welche Informationen geben diese drei Werte also? 🎜
  • -1 stellt dauerhaft gültige Daten dar.
  • 775 Dieser Wert wird auf das Alter festgelegt. Der verwendete Befehl ist setex age 1000 24, der die verbleibende Gültigkeitsdauer darstellt.
  • -2 stellt abgelaufene oder gelöschte Daten dar. oder definierte DatenRedis-Löschrichtlinie und Räumungsrichtlinie

Die Speicherstruktur abgelaufener Daten

  • Wenn wir einen zeitkritischen Namen festlegen, speichert Redis eine Speicheradresse 0x10101
  • Dann öffnet Redis einen weiteren Bereich um den zeitkritischen Schlüssel zu speichern
  • Aber die Speichermethode ist die dem Schlüssel entsprechende Speicheradresse und die AblaufzeitRedis-Löschrichtlinie und RäumungsrichtlinieDie Redis-Löschstrategie, über die wir heute sprechen, besteht also darin, diesen Teil der Daten zu löschen.

Geplante Löschung

Die geplante Löschung besteht darin, einen Timer zu schreiben. Wenn die Schlüsselzeit abläuft, löscht die Timer-Aufgabe den abgelaufenen Schlüssel sofort.

Vorteile: Sie können sich die Ankunft des Schlüssels vorstellen Löschen so schnell wie möglich, was definitiv am speicherfreundlichsten ist und Speicher spart

Nachteile: Die Single-Threaded-Funktion von Redis besteht darin, dass alle Befehle in einer bestimmten Reihenfolge ausgeführt werden. Wenn der Schlüsselwert nach Ablauf gelöscht wird, wird die CPU stärker belastet, was sich direkt auf die Reaktionszeit und die E/A des Redis-Servers auswirkt. Geplantes Löschen bedeutet, dass Zeit im Austausch gegen Speicherplatz verwendet wird

Nachdem der geplante Löschvorgang abgeschlossen ist, werden die dem Schlüsselwert entsprechenden Daten gelöscht und der abgelaufene Speicherbereich wird ebenfalls direkt gelöscht. Redis-Löschrichtlinie und Räumungsrichtlinie

Verzögertes Löschen

Sehen Sie sich dieses Bild an. Wenn der Schlüsselwert abläuft, wird er nicht direkt gelöscht. Lesen Sie weiterRedis-Löschrichtlinie und Räumungsrichtlinie

Wenn wir das verzögerte Löschen verwenden, werden die Daten nach Ablauf nicht automatisch gelöscht. Die Löschmethode besteht darin, dass beim nächsten Abrufen des Schlüsselwerts eine Beurteilung vorgenommen wird, um festzustellen, ob der Schlüssel abgelaufen ist. Wenn es abläuft, löschen Sie es.

Das heißt, wenn get name erneut ausgeführt wird, wird eine Funktion ausgeführtexpirelfNeeded() Diese Funktion dient dazu, festzustellen, ob der Schlüssel abgelaufen ist. Abgelaufene geben Null zurück und löschen sie dann aus dem Speicher.

Redis-Löschrichtlinie und RäumungsrichtlinieVorteile: Dadurch wird ein gewisses Maß an CPU-Leistung verringert und es wird nur gelöscht, wenn es gelöscht werden muss.

Nachteile: Es muss an hoher Speicherauslastung liegen. Zum Beispiel einige heiße Nachrichten. Nachdem der Hotspot vorbei ist, wird fast niemand darauf zugreifen. Wenn niemand auf den Schlüssel zugreift, wird er für eine lange Zeit einen bestimmten Speicherplatz beanspruchen Methode besteht darin, Speicherplatz gegen Zeit einzutauschen.

Wir haben oben zwei Löschmethoden erwähnt, eine ist das geplante Löschen und die andere ist das verzögerte Löschen. Eine besteht darin, Raum gegen Zeit einzutauschen. Eine besteht darin, Zeit gegen Raum einzutauschen. Beide Optionen sind relativ extreme Methoden. Dann werfen wir einen Blick auf den Umsetzungsplan für die regelmäßige Löschung.

Redis-Löschrichtlinie und RäumungsrichtlinieImplementierungsmethode

Wenn Redis startet, liest es den Hz-Wert unter dem Server, der Standardwert ist 10. Dieser Wert kann direkt über das Terminal angezeigt werdeninfo server

Redis-Löschrichtlinie und RäumungsrichtlinieDann wird der Server Hz-mal pro Sekunde ausgeführt, um serverCron()-Abfragen durchzuführen

Verwenden Sie weiterhin DatenbankenCron, um nacheinander auf die Informationen der 16 Redis-Bibliotheken zuzugreifen

Beim Zugriff auf ActiveExpireCycel wird es erneut ausgeführt, um jeden Ablauf[*] einzeln zu erkennen. Die Ausführungszeit beträgt jeweils 250 ms/Server-Hz. Bei der Erkennung jedes Ablaufs[*] wird nach dem Zufallsprinzip ausgewählt Erkennung.

    Wenn der Schlüssel abläuft, löschen Sie den Schlüssel direkt Round25 %, Überprüfen Sie die nächsten Abläufe[
    ]
  • Jetzt kommt das Problem, unsere 250 ms/Hz-Zeit wurde ausgeführt, aber was sollen wir tun, wenn die 16 Datenbanken der Abläufe nicht durchlaufen wurden? ! In welche Bibliothek werde ich das nächste Mal radeln? Tatsächlich existiert dieser Wert, es ist der Wert von current_db. Dieser Wert wird in activeExpireCycel aufgezeichnet, wenn Sie das nächste Mal „expires[*]“ zur Ausführung eingeben
    Funktion 1: Es gibt keinen hohen Spitzenwert bei der CPU-Auslastung und die Erkennungshäufigkeit kann angepasst werden
  • Funktion 2: Der Speicherdruck wird nicht sehr hoch sein hoch, und der lange Zeit belegte Speicher wird fortgesetzt. Bereinigung
  • Eviction-Algorithmus

Redis-Löschrichtlinie und Räumungsrichtlinie

Oben haben wir drei Löschstrategien erwähnt, aber diese drei Strategien sind nur in Bezug auf Schlüssel mit einer Gültigkeitsdauer wirksam.

Da unser Redis nun nicht mehr genügend Speicher belegt, verwenden wir die Räumungsrichtlinie, um die normale Nutzung von Redis sicherzustellen.

redis ruft freeMemorylfNeeded() auf, um vor der Ausführung jedes Befehls zu prüfen, ob der Speicher ausreicht. Wenn dieser nicht ausreicht, werden einige Schlüssel gelöscht. Diese Datenlöschstrategie wird als Räumungsstrategie bezeichnet.

Der Parameter des maximal nutzbaren Speichers von Redis ist: maxmemory. Er bezieht sich auf den Anteil des belegten physischen Speichers.

Wählen Sie die Anzahl der zu löschenden Schlüssel jedes Mal: ​​maxmemory-samples

Löschstrategie: maxmemory-policy

「Konzentrieren wir uns auf die Löschstrategie」

  • Erkennen Sie flüchtige Daten (dh wir haben den Gültigkeitszeitraum festgelegt, aber die Daten sind noch nicht abgelaufen noch nicht abgelaufen ist[*] oben)
    • volatile-lru: Wählen Sie die Daten aus, die zuletzt verwendet wurden
    • volatile-lfu: Wählen Sie die Daten aus, die zuletzt verwendet wurden
    • volatile- ttl: Wählen Sie die Daten aus, die eliminiert werden sollen
      Der Schlüssel mit dem längsten Abstand von 9s ist das Alter
    Der am wenigsten verwendete Schlüssel ist der Geschlechtsschlüssel

    Wenn Sie volatile-lru folgen, wird das Alter gelöscht
  • Wenn Sie volatile-lfu folgen , Geschlecht wird gelöscht
  • Alle Daten erkennen

    • allkeys-lru: Wählen Sie die Daten aus, die zuletzt verwendet wurden
    • allkeys-lfu: Wählen Sie die Daten aus, die zuletzt verwendet wurden
    • allkeys-random : Nach dem Zufallsprinzip die gesamte Datenbank löschen
  • Datenräumung aufgeben

    • no-enviction: Die Daten werden erst gelöscht, wenn der Speicher aufgebraucht ist, was zu einem Oom-Fehler führt.

Zusammenfassung

Das Obige ist die Löschstrategie und Räumungsstrategie von Redis für Daten.

Hier ist zu beachten, dass sich flüchtige Daten in der Räumungsrichtlinie auf den Schlüssel mit festgelegter Ablaufzeit beziehen und kein dauerhafter Wert sind.

Die gesamte Datenbank bezieht sich auf alle Werte, mit Ablaufzeit und permanentem Datensatz.

Beharrlichkeit beim Lernen, Beharrlichkeit beim Bloggen und Beharrlichkeit beim Teilen sind die Überzeugungen, an denen Kaka seit seiner Karriere festhält. Ich hoffe, dass Kakas Artikel im riesigen Internet Ihnen ein wenig helfen können Sie in der nächsten Ausgabe.

Empfohlen: „Redis-Tutorial

Das obige ist der detaillierte Inhalt vonRedis-Löschrichtlinie und Räumungsrichtlinie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erstellen Sie den Redis -Clustermodus So erstellen Sie den Redis -Clustermodus Apr 10, 2025 pm 10:15 PM

Der Redis -Cluster -Modus bietet Redis -Instanzen durch Sharding, die Skalierbarkeit und Verfügbarkeit verbessert. Die Bauschritte sind wie folgt: Erstellen Sie ungerade Redis -Instanzen mit verschiedenen Ports; Erstellen Sie 3 Sentinel -Instanzen, Monitor -Redis -Instanzen und Failover; Konfigurieren von Sentinel -Konfigurationsdateien, Informationen zur Überwachung von Redis -Instanzinformationen und Failover -Einstellungen hinzufügen. Konfigurieren von Redis -Instanzkonfigurationsdateien, aktivieren Sie den Cluster -Modus und geben Sie den Cluster -Informationsdateipfad an. Erstellen Sie die Datei nodes.conf, die Informationen zu jeder Redis -Instanz enthält. Starten Sie den Cluster, führen Sie den Befehl erstellen aus, um einen Cluster zu erstellen und die Anzahl der Replikate anzugeben. Melden Sie sich im Cluster an, um den Befehl cluster info auszuführen, um den Clusterstatus zu überprüfen. machen

So löschen Sie Redis -Daten So löschen Sie Redis -Daten Apr 10, 2025 pm 10:06 PM

So löschen Sie Redis -Daten: Verwenden Sie den Befehl Flushall, um alle Schlüsselwerte zu löschen. Verwenden Sie den Befehl flushdb, um den Schlüsselwert der aktuell ausgewählten Datenbank zu löschen. Verwenden Sie SELECT, um Datenbanken zu wechseln, und löschen Sie dann FlushDB, um mehrere Datenbanken zu löschen. Verwenden Sie den Befehl del, um einen bestimmten Schlüssel zu löschen. Verwenden Sie das Redis-Cli-Tool, um die Daten zu löschen.

So lesen Sie Redis -Warteschlange So lesen Sie Redis -Warteschlange Apr 10, 2025 pm 10:12 PM

Um eine Warteschlange aus Redis zu lesen, müssen Sie den Warteschlangenname erhalten, die Elemente mit dem Befehl LPOP lesen und die leere Warteschlange verarbeiten. Die spezifischen Schritte sind wie folgt: Holen Sie sich den Warteschlangenname: Nennen Sie ihn mit dem Präfix von "Warteschlange:" wie "Warteschlangen: My-Queue". Verwenden Sie den Befehl LPOP: Wischen Sie das Element aus dem Kopf der Warteschlange aus und geben Sie seinen Wert zurück, z. B. die LPOP-Warteschlange: my-queue. Verarbeitung leerer Warteschlangen: Wenn die Warteschlange leer ist, gibt LPOP NIL zurück, und Sie können überprüfen, ob die Warteschlange existiert, bevor Sie das Element lesen.

So verwenden Sie Redis Lock So verwenden Sie Redis Lock Apr 10, 2025 pm 08:39 PM

Um die Operationen zu sperren, muss die Sperre durch den Befehl setNX erfasst werden und dann den Befehl Ablauf verwenden, um die Ablaufzeit festzulegen. Die spezifischen Schritte sind: (1) Verwenden Sie den Befehl setNX, um zu versuchen, ein Schlüsselwertpaar festzulegen; (2) Verwenden Sie den Befehl Ablauf, um die Ablaufzeit für die Sperre festzulegen. (3) Verwenden Sie den Befehl Del, um die Sperre zu löschen, wenn die Sperre nicht mehr benötigt wird.

So verwenden Sie den Befehl Redis So verwenden Sie den Befehl Redis Apr 10, 2025 pm 08:45 PM

Die Verwendung der REDIS -Anweisung erfordert die folgenden Schritte: Öffnen Sie den Redis -Client. Geben Sie den Befehl ein (Verbschlüsselwert). Bietet die erforderlichen Parameter (variiert von der Anweisung bis zur Anweisung). Drücken Sie die Eingabetaste, um den Befehl auszuführen. Redis gibt eine Antwort zurück, die das Ergebnis der Operation anzeigt (normalerweise in Ordnung oder -err).

So lesen Sie den Quellcode von Redis So lesen Sie den Quellcode von Redis Apr 10, 2025 pm 08:27 PM

Der beste Weg, um Redis -Quellcode zu verstehen, besteht darin, Schritt für Schritt zu gehen: Machen Sie sich mit den Grundlagen von Redis vertraut. Wählen Sie ein bestimmtes Modul oder eine bestimmte Funktion als Ausgangspunkt. Beginnen Sie mit dem Einstiegspunkt des Moduls oder der Funktion und sehen Sie sich die Codezeile nach Zeile an. Zeigen Sie den Code über die Funktionsaufrufkette an. Kennen Sie die von Redis verwendeten Datenstrukturen. Identifizieren Sie den von Redis verwendeten Algorithmus.

So verwenden Sie die Befehlszeile der Redis So verwenden Sie die Befehlszeile der Redis Apr 10, 2025 pm 10:18 PM

Verwenden Sie das Redis-Befehlszeilen-Tool (REDIS-CLI), um Redis in folgenden Schritten zu verwalten und zu betreiben: Stellen Sie die Adresse und den Port an, um die Adresse und den Port zu stellen. Senden Sie Befehle mit dem Befehlsnamen und den Parametern an den Server. Verwenden Sie den Befehl Hilfe, um Hilfeinformationen für einen bestimmten Befehl anzuzeigen. Verwenden Sie den Befehl zum Beenden, um das Befehlszeilenwerkzeug zu beenden.

So konfigurieren Sie die Ausführungszeit der Lua -Skript in CentOS Redis So konfigurieren Sie die Ausführungszeit der Lua -Skript in CentOS Redis Apr 14, 2025 pm 02:12 PM

Auf CentOS -Systemen können Sie die Ausführungszeit von LuA -Skripten einschränken, indem Sie Redis -Konfigurationsdateien ändern oder Befehle mit Redis verwenden, um zu verhindern, dass bösartige Skripte zu viele Ressourcen konsumieren. Methode 1: Ändern Sie die Redis -Konfigurationsdatei und suchen Sie die Redis -Konfigurationsdatei: Die Redis -Konfigurationsdatei befindet sich normalerweise in /etc/redis/redis.conf. Konfigurationsdatei bearbeiten: Öffnen Sie die Konfigurationsdatei mit einem Texteditor (z. B. VI oder Nano): Sudovi/etc/redis/redis.conf Setzen Sie die LUA -Skriptausführungszeit.

See all articles