ZINCRBY în Redis & In-Memory Data Store

Crește (sau scade) atomic scorul unui membru dintr-un set sortat; creează membrul dacă lipsește.

Sintaxă comandă
ZINCRBY key increment member

Ce face ZINCRBY

ZINCRBY adaugă increment la scorul membrului. Dacă membrul nu există, este adăugat cu scorul egal cu incrementul; dacă setul nu există, este creat.

Este comanda tipică pentru clasamente care se schimbă des: „cele mai vizitate articole”, „cele mai vândute produse”. Un increment negativ scade scorul.

Parametri

Parametru Descriere
increment Cât se adaugă la scor (poate fi negativ sau zecimal).
member Membrul al cărui scor se schimbă.

Ce returnează

Scorul nou, ca șir.

Exemple

Exemplul 1: Cele mai vizitate articole

Fiecare vizită crește scorul articolului cu 1.

ZINCRBY populare 1 articol:redis-set
ZINCRBY populare 1 articol:redis-set
ZINCRBY populare 1 articol:mongodb-find
ZRANGE populare 0 -1 REV WITHSCORES

Ieșire în redis-cli

127.0.0.1:6379> ZINCRBY populare 1 articol:redis-set
"1"
127.0.0.1:6379> ZINCRBY populare 1 articol:redis-set
"2"
127.0.0.1:6379> ZINCRBY populare 1 articol:mongodb-find
"1"
127.0.0.1:6379> ZRANGE populare 0 -1 REV WITHSCORES
1) "articol:redis-set"
2) "2"
3) "articol:mongodb-find"
4) "1"

Exemplul 2: Penalizare într-un joc

Un increment negativ scade scorul.

ZADD clasament 1520 ana
ZINCRBY clasament -70 ana

Ieșire în redis-cli

127.0.0.1:6379> ZADD clasament 1520 ana
(integer) 1
127.0.0.1:6379> ZINCRBY clasament -70 ana
"1450"

Greșeli frecvente

  • Ordinea este increment member; inversate, primești eroarea ERR value is not a valid float.
  • Rezultatul este șir, nu (integer): în aplicație îl convertești la număr.

Comenzi înrudite

  • ZADD: Adaugă membri cu un scor numeric într-un set sortat sau le actualizează scorul; baza clasamentelor din Redis.
  • ZSCORE / ZMSCORE: Citește scorul unui membru dintr-un set sortat; ZMSCORE citește scorurile mai multor membri.
  • INCR / INCRBY / DECR: Crește sau scade atomic un număr salvat într-o cheie; ideal pentru contoare de vizite, stocuri și ID-uri.
  • 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.