HGETALL / HKEYS / HVALS / HLEN în Redis & In-Memory Data Store

HGETALL întoarce toate câmpurile și valorile unui hash; HKEYS doar câmpurile, HVALS doar valorile, HLEN numărul lor.

Sintaxă comandă
HGETALL key
HKEYS key
HVALS key
HLEN key

Ce face HGETALL / HKEYS / HVALS / HLEN

HGETALL întoarce întregul hash. În redis-cli (protocolul RESP2) răspunsul este o listă plată în care câmpurile și valorile alternează: câmp, valoare, câmp, valoare. Bibliotecile client o transformă de obicei în dicționar.

HKEYS întoarce doar numele câmpurilor, HVALS doar valorile, iar HLEN câte câmpuri are hash-ul. Pentru o cheie inexistentă primești o listă goală, respectiv 0.

Parametri

Parametru Descriere
key Cheia hash-ului.

Ce returnează

HGETALL/HKEYS/HVALS: o listă (goală dacă cheia nu există). HLEN: un (integer).

Exemple

Exemplul 1: Tot profilul dintr-o comandă

Câmpurile și valorile alternează în răspuns.

HSET utilizator:7 nume Ana oras Iasi varsta 31
HGETALL utilizator:7
HLEN utilizator:7

Ieșire în redis-cli

127.0.0.1:6379> HSET utilizator:7 nume Ana oras Iasi varsta 31
(integer) 3
127.0.0.1:6379> HGETALL utilizator:7
1) "nume"
2) "Ana"
3) "oras"
4) "Iasi"
5) "varsta"
6) "31"
127.0.0.1:6379> HLEN utilizator:7
(integer) 3

Exemplul 2: Doar câmpurile sau doar valorile

Pentru o cheie inexistentă, redis-cli afișează (empty array).

HKEYS utilizator:7
HVALS utilizator:7
HGETALL utilizator:999

Ieșire în redis-cli

127.0.0.1:6379> HKEYS utilizator:7
1) "nume"
2) "oras"
3) "varsta"
127.0.0.1:6379> HVALS utilizator:7
1) "Ana"
2) "Iasi"
3) "31"
127.0.0.1:6379> HGETALL utilizator:999
(empty array)

Greșeli frecvente

  • Pe hash-uri cu sute de mii de câmpuri, HGETALL blochează serverul și trimite mulți octeți prin rețea. Folosește HSCAN.
  • Nu te baza pe ordinea câmpurilor: la hash-urile mari ordinea nu este cea de inserare.

Comenzi înrudite

  • HSET: Scrie unul sau mai multe câmpuri într-un hash (un obiect cu perechi câmp–valoare), creând hash-ul dacă lipsește.
  • HMGET: Citește mai multe câmpuri dintr-un hash într-o singură comandă, în ordinea cerută.
  • HSCAN: Parcurge treptat câmpurile unui hash mare, cu un cursor, fără să blocheze serverul.
  • HGET: Citește valoarea unui singur câmp dintr-un hash; întoarce nil dacă câmpul sau cheia lipsesc.