HSET în Redis & In-Memory Data Store

Scrie unul sau mai multe câmpuri într-un hash (un obiect cu perechi câmp–valoare), creând hash-ul dacă lipsește.

Sintaxă comandă
HSET key field value [field value ...]

Ce face HSET

Un hash în Redis seamănă cu un obiect sau un rând de tabel: o cheie (utilizator:7) cu mai multe câmpuri (nume, oras, varsta). HSET scrie câmpurile date; câmpurile existente sunt actualizate, iar cele noi sunt adăugate.

Din Redis 4.0.0, HSET acceptă mai multe perechi deodată, așa că vechea comandă HMSET este considerată depreciată. HSETNX scrie un câmp doar dacă acesta nu există.

Parametri

Parametru Descriere
key Cheia hash-ului.
field value ... Perechile câmp–valoare de scris.

Ce returnează

Un (integer): câte câmpuri NOI au fost adăugate (câmpurile actualizate nu se numără).

Exemple

Exemplul 1: Profilul unui utilizator

Prima comandă adaugă trei câmpuri. A doua actualizează oras și adaugă telefon, deci întoarce 1.

HSET utilizator:7 nume Ana oras Iasi varsta 31
HSET utilizator:7 oras Cluj telefon 0722000111
HGET utilizator:7 oras

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> HSET utilizator:7 oras Cluj telefon 0722000111
(integer) 1
127.0.0.1:6379> HGET utilizator:7 oras
"Cluj"

Exemplul 2: HSETNX: doar dacă lipsește câmpul

Data înregistrării se scrie o singură dată.

HSETNX utilizator:7 inregistrat 2026-10-25
HSETNX utilizator:7 inregistrat 2026-11-01

Ieșire în redis-cli

127.0.0.1:6379> HSETNX utilizator:7 inregistrat 2026-10-25
(integer) 1
127.0.0.1:6379> HSETNX utilizator:7 inregistrat 2026-11-01
(integer) 0

Greșeli frecvente

  • Rezultatul 0 nu înseamnă eșec: câmpurile au fost actualizate, doar că nu era niciunul nou.
  • HSET pe o cheie care conține alt tip (de exemplu string) dă eroarea WRONGTYPE.
  • Toate valorile sunt string-uri: varsta 31 se salvează ca textul „31” (dar HINCRBY îl poate crește).

Comenzi înrudite

  • HGET: Citește valoarea unui singur câmp dintr-un hash; întoarce nil dacă câmpul sau cheia lipsesc.
  • HGETALL / HKEYS / HVALS / HLEN: HGETALL întoarce toate câmpurile și valorile unui hash; HKEYS doar câmpurile, HVALS doar valorile, HLEN numărul lor.
  • HMGET: Citește mai multe câmpuri dintr-un hash într-o singură comandă, în ordinea cerută.
  • HINCRBY / HINCRBYFLOAT: Crește sau scade atomic un câmp numeric dintr-un hash, de exemplu stocul sau numărul de comenzi ale unui client.
  • HDEL: Șterge unul sau mai multe câmpuri dintr-un hash; când ultimul câmp dispare, dispare și cheia.