Ce face DEL / UNLINK
DEL șterge cheile date, de orice tip, și întoarce câte au fost șterse efectiv. Cheile care nu există sunt ignorate.
UNLINK (din Redis 4.0.0) scoate imediat cheile din baza de date, dar eliberează memoria pe un fir separat. Pentru o listă sau un hash cu milioane de elemente, DEL poate bloca serverul zeci de milisecunde, iar UNLINK nu.
Parametri
| Parametru | Descriere |
|---|---|
key ... |
Una sau mai multe chei de șters. |
Ce returnează
Un (integer): numărul de chei șterse (cheile inexistente nu se numără).
Exemple
Exemplul 1: Ștergerea mai multor chei deodată
Doar două dintre cele trei chei existau, deci răspunsul este 2.
MSET cos:ana 3 cos:dan 1
DEL cos:ana cos:dan cos:ioana
EXISTS cos:ana
Ieșire în redis-cli
127.0.0.1:6379> MSET cos:ana 3 cos:dan 1
OK
127.0.0.1:6379> DEL cos:ana cos:dan cos:ioana
(integer) 2
127.0.0.1:6379> EXISTS cos:ana
(integer) 0
Exemplul 2: UNLINK pentru o cheie mare
Lista de jurnal poate avea milioane de elemente; UNLINK o scoate imediat, iar memoria se eliberează în fundal.
LLEN jurnal:acces
UNLINK jurnal:acces
LLEN jurnal:acces
Ieșire în redis-cli
127.0.0.1:6379> LLEN jurnal:acces
(integer) 2500000
127.0.0.1:6379> UNLINK jurnal:acces
(integer) 1
127.0.0.1:6379> LLEN jurnal:acces
(integer) 0
Greșeli frecvente
DELnu acceptă tipare:DEL user:*încearcă să șteargă o cheie numită literaluser:*. Pentru tipare foloseșteSCANși apoiUNLINKpe loturi.- Cu opțiunea de configurare
lazyfree-lazy-user-del yes, șiDELse comportă caUNLINK.
Comenzi înrudite
EXISTS: Verifică dacă una sau mai multe chei există și întoarce câte dintre ele au fost găsite.KEYS vs SCAN: KEYS listează toate cheile după un tipar dintr-odată și blochează serverul; SCAN le parcurge treptat, cu un cursor.FLUSHDB / FLUSHALL: Șterge toate cheile din baza de date curentă (FLUSHDB) sau din toate bazele de date (FLUSHALL).GETDEL / GETEX: GETDEL citește și șterge o cheie într-un singur pas; GETEX citește și schimbă expirarea cheii.