Es gibt drei häufig verwendete Löschstrategien in Redis:
1. Passives Löschen (Lazy Deletion): wenn ein Lese-/Schreibelement vorhanden ist abgelaufen Wenn ein Schlüssel gefunden wird, wird die Strategie zum verzögerten Löschen ausgelöst
2. Aktives Löschen (reguläres Löschen): Redis führt regelmäßige Inspektionen durch, um abgelaufene Schlüssel zu bereinigen; >
3. Wenn der Speicher die maximale Speicherkonfiguration erreicht, wird der Schlüssellöschvorgang ausgelöst
Aktive Löschung
In Redis regelmäßige Vorgänge werden von redis.c/serverCron implementiert und führen hauptsächlich die folgenden Vorgänge aus:
1. Aktualisieren Sie verschiedene statistische Informationen des Servers, wie Zeit, Speichernutzung, Datenbanknutzung usw.
2. Bereinigen Sie abgelaufene Schlüssel-Wert-Paare in der Datenbank.
3. Ändern Sie die Größe unzumutbarer Datenbanken.
4. Schließen und bereinigen Sie Clients mit fehlgeschlagenen Verbindungen.
5. Versuchen Sie den AOF- oder RDB-Persistenzbetrieb.
6. Wenn der Server der Master-Knoten ist, führen Sie eine regelmäßige Synchronisierung der Slave-Knoten durch.
Führen Sie im Clustermodus regelmäßige Synchronisierungs- und Verbindungstests für den Cluster durch.
Redis führt serverCron als Zeitereignis aus, um sicherzustellen, dass es von Zeit zu Zeit automatisch ausgeführt wird. Und da serverCron regelmäßig ausgeführt werden muss, während der Redis-Server ausgeführt wird, handelt es sich um ein zyklisches Zeitereignis: serverCron Es wird sein wird regelmäßig ausgeführt, bis der Server heruntergefahren wird.
Zusammenfassung
Wenn täglich eine große Anzahl von Schlüsseln in Redis abläuft (z. B. Dutzende Millionen), muss die Bereinigung abgelaufener Schlüssel erfolgen berücksichtigt:
Erhöhen Sie die Häufigkeit der aktiven Redis-Reinigung (durch Erhöhen des Hz-Parameters)
Bereinigen Sie abgelaufene Schlüssel manuell. Der Scanvorgang wird ausgelöst Vergessen Sie nicht, den Scanvorgang durchzuführen.
Die Anzahl der vom Befehl „dbsize“ zurückgegebenen Schlüssel.
Die vom Befehl „randomkey“ zurückgegebenen Schlüssel abgelaufene Schlüssel
Vom Scan-Befehl zurückgegebene Schlüssel, einschließlich abgelaufener Schlüssel. Die Anzahl der Schlüssel, die dem # Keyspace entsprechen
db6:keys=1034937352, Expires=994731489,avg_ttl=507838502
vom Schlüssel zurückgegebene Schlüssel
Info-Befehl ist gleich dbsize
expires bezieht sich auf die Anzahl der Schlüssel mit festgelegter Ablaufzeit
avg_ttl bezieht sich auf die durchschnittliche Ablaufzeit ( Einheit: Millisekunden) des Schlüssels mit festgelegter Ablaufzeit
Das obige ist der detaillierte Inhalt vonSo löschen Sie Daten in Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!