Heim > Datenbank > Redis > So verwenden Sie Lazy Deletion Lazy Free in Redis

So verwenden Sie Lazy Deletion Lazy Free in Redis

WBOY
Freigeben: 2023-05-26 23:37:04
nach vorne
1932 Leute haben es durchsucht

Verwenden Sie Lazy Deletion Lazy Free

Wenn der Schlüssel abläuft oder der Befehl DEL delete verwendet wird, entfernt Redis nicht nur das Objekt aus der globalen Hash-Tabelle, sondern gibt auch den vom Objekt zugewiesenen Speicher frei. Wenn ein großer Schlüssel gefunden wird, führt die Freigabe des Speichers dazu, dass der Hauptthread blockiert wird.

Zu diesem Zweck hat Redis 4.0 den UNLINK-Befehl eingeführt, der den Vorgang der Freigabe des Objektspeichers zur Ausführung in den Bio-Hintergrundthread legt. Dies reduziert effektiv die Blockierung des Hauptthreads.

Redis 6.0 geht noch einen Schritt weiter und führt Lazy-Free-bezogene Konfigurationen ein. Wenn die Konfiguration aktiviert ist, wird der Vorgang „Objekt freigeben“ innerhalb der Schlüsselablauf- und DEL-Befehle „asynchron ausgeführt“.

void delCommand(client *c) {
    delGenericCommand(c,server.lazyfree_lazy_user_del);}void delGenericCommand(client *c, int lazy) {
    int numdel = 0, j;

    for (j = 1; j < c->argc; j++) {
        expireIfNeeded(c->db,c->argv[j]);
        // 开启 lazy free 则使用异步删除
        int deleted = lazy ? dbAsyncDelete(c->db,c->argv[j]) :
                              dbSyncDelete(c->db,c->argv[j]);
        ...
    }}
Nach dem Login kopieren

Es wird empfohlen, auf mindestens Redis 6 zu aktualisieren und Lazy-free zu aktivieren.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Lazy Deletion Lazy Free in Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage