EXISTS în Redis & In-Memory Data Store

Verifică dacă una sau mai multe chei există și întoarce câte dintre ele au fost găsite.

Sintaxă comandă
EXISTS key [key ...]

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, apoi SET) nu este atomic: între cele două comenzi alt client poate scrie cheia. Folosește SET ... 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ă.