INCR / INCRBY / DECR în Redis & In-Memory Data Store

Crește sau scade atomic un număr salvat într-o cheie; ideal pentru contoare de vizite, stocuri și ID-uri.

Sintaxă comandă
INCR key
INCRBY key increment
DECR key
DECRBY key decrement
INCRBYFLOAT key increment

Ce face INCR / INCRBY / DECR

INCR adaugă 1 la valoarea numerică a unei chei, iar DECR scade 1. INCRBY și DECRBY adaugă sau scad un număr întreg oarecare. Dacă cheia nu există, Redis pornește de la 0.

Operațiile sunt atomice: chiar dacă o mie de clienți cresc același contor în același timp, nu se pierde nicio incrementare. Valoarea trebuie să fie un întreg pe 64 de biți cu semn. Pentru zecimale există INCRBYFLOAT (din Redis 2.6.0).

Parametri

Parametru Descriere
key Cheia cu valoarea numerică.
increment / decrement Cât se adaugă sau se scade (întreg; la INCRBYFLOAT poate fi zecimal sau negativ).

Ce returnează

Valoarea nouă, ca (integer). INCRBYFLOAT întoarce valoarea nouă ca șir (de exemplu "10.6").

Exemple

Exemplul 1: Contor de vizite pe o pagină

Cheia nu există la început, deci primul INCR întoarce 1.

INCR vizite:pagina:acasa
INCR vizite:pagina:acasa
INCRBY vizite:pagina:acasa 10

Ieșire în redis-cli

127.0.0.1:6379> INCR vizite:pagina:acasa
(integer) 1
127.0.0.1:6379> INCR vizite:pagina:acasa
(integer) 2
127.0.0.1:6379> INCRBY vizite:pagina:acasa 10
(integer) 12

Exemplul 2: Stoc care scade la fiecare vânzare

DECRBY scade mai multe bucăți deodată. Pe o valoare care nu e număr, comanda dă eroare.

SET stoc:caiet 50
DECR stoc:caiet
DECRBY stoc:caiet 9
SET stoc:pix multe
INCR stoc:pix

Ieșire în redis-cli

127.0.0.1:6379> SET stoc:caiet 50
OK
127.0.0.1:6379> DECR stoc:caiet
(integer) 49
127.0.0.1:6379> DECRBY stoc:caiet 9
(integer) 40
127.0.0.1:6379> SET stoc:pix multe
OK
127.0.0.1:6379> INCR stoc:pix
(error) ERR value is not an integer or out of range

Exemplul 3: Sold în lei cu zecimale

INCRBYFLOAT lucrează cu numere zecimale și întoarce rezultatul ca șir.

SET sold:ana 10.50
INCRBYFLOAT sold:ana 0.1

Ieșire în redis-cli

127.0.0.1:6379> SET sold:ana 10.50
OK
127.0.0.1:6379> INCRBYFLOAT sold:ana 0.1
"10.6"

Greșeli frecvente

  • INCR nu verifică limite: stocul poate ajunge negativ. Dacă ai nevoie de „nu sub zero”, folosește un script Lua sau o tranzacție cu WATCH.
  • INCR nu modifică expirarea cheii: dacă vrei un contor pe fereastră de timp, setează EXPIRE separat după primul INCR.
  • Pentru bani, multe aplicații salvează sumele în bani (întregi) și folosesc INCRBY, ca să evite rotunjirile numerelor zecimale.

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).
  • 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.
  • EXPIRE / PEXPIRE: Setează după câte secunde (EXPIRE) sau milisecunde (PEXPIRE) se șterge automat o cheie.
  • ZINCRBY: Crește (sau scade) atomic scorul unui membru dintr-un set sortat; creează membrul dacă lipsește.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: INCR / INCRBY / DECR

Ai o nelămurire despre utilizarea comenzii INCR / INCRBY / DECR sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.