Ce face EXISTS
EXISTS întoarce 1 dacă cheia există și 0 dacă nu. Din Redis 3.0.3 poți da mai multe chei, iar răspunsul este numărul de chei găsite.
Atenție: dacă aceeași cheie apare de două ori în listă, este numărată de două ori. Cheile expirate nu mai există pentru EXISTS, chiar dacă memoria lor nu a fost încă eliberată.
Parametri
| Parametru | Descriere |
|---|---|
key ... |
Cheile de verificat. |
Ce returnează
Un (integer): câte dintre cheile date există.
Exemple
Exemplul 1: Verificare simplă
Prima cheie există, a doua nu.
SET utilizator:ana:activ 1
EXISTS utilizator:ana:activ
EXISTS utilizator:dan:activ
Ieșire în redis-cli
127.0.0.1:6379> SET utilizator:ana:activ 1
OK
127.0.0.1:6379> EXISTS utilizator:ana:activ
(integer) 1
127.0.0.1:6379> EXISTS utilizator:dan:activ
(integer) 0
Exemplul 2: Mai multe chei, cu o cheie repetată
Cheia utilizator:ana:activ apare de două ori și se numără de două ori.
EXISTS utilizator:ana:activ utilizator:dan:activ utilizator:ana:activ
Ieșire în redis-cli
127.0.0.1:6379> EXISTS utilizator:ana:activ utilizator:dan:activ utilizator:ana:activ
(integer) 2
Greșeli frecvente
- „Verifică și apoi scrie” (
EXISTS, apoiSET) nu este atomic: între cele două comenzi alt client poate scrie cheia. FoloseșteSET ... NX. - Nu trata rezultatul ca boolean când dai mai multe chei:
2înseamnă două chei găsite.
Comenzi înrudite
SET: Salvează o valoare text la o cheie, opțional cu expirare (EX/PX), doar dacă nu există (NX) sau doar dacă există (XX).TYPE: Arată tipul valorii unei chei: string, list, set, zset, hash, stream sau none dacă nu există.DEL / UNLINK: Șterge una sau mai multe chei; UNLINK eliberează memoria în fundal, fără să blocheze serverul.TTL / PTTL: Arată cât timp mai are o cheie până expiră: în secunde (TTL) sau milisecunde (PTTL); -1 fără expirare, -2 dacă nu există.