Stringurile sunt cel mai basic tip de valoare din Redis, iar cheile identifică toate datele din Redis. Înțelegerea comenzilor pentru stringuri (inclusiv contori atomici) și a convenții de denumire/gestionare a cheilor este fundamentală pentru utilizarea zilnică a Redis.
Comenzi pentru stringuri
SET name "Ann" # set a value
GET name # => "Ann"
SET name "Bob" EX 60 # set with a 60-second expiry (TTL)
SETNX lock "1" # set only if NOT exists (useful for locks)
MSET a "1" b "2" # set multiple at once
APPEND name " Smith" # append to a string
STRLEN name # string length
Stringurile pot reține text, numere sau chiar date binare (până la 512MB). Sunt versatile — folosite pentru valori în cache, flag-uri, obiecte serializate și contori.
Contori atomici
SET views 0
INCR views # => 1 (atomic increment)
INCRBY views 10 # => 11
DECR views # decrement
# atomic — safe even with concurrent clients (no race conditions)
Stringurile care conțin numere suportă increment/decrement atomic — perfect pentru contori (vizualizări de pagini, rate limits, ID-uri) care sunt corecți chiar și sub acces concurent.
Cheile — denumire și gestionare
# convention: use colon-separated namespaces for organization
SET user:1000:name "Ann" # user 1000's name
SET user:1000:email "[email protected]"
EXISTS user:1000:name # does the key exist? => 1
DEL user:1000:name # delete a key
KEYS user:* # find keys by pattern (⚠️ slow on big DBs — avoid in prod)
SCAN 0 MATCH user:* # iterate keys safely (preferred over KEYS)
TYPE user:1000 # the value's data type
RENAME oldkey newkey # rename
Convenție de denumire a cheilor: namespace-uri separate prin două puncte (user:1000:name) organizează cheile logic. Important: evitați KEYS în producție (scanează toate cheile, blocând serverul) — folosiți SCAN pentru iterație sigură.
De ce este important
Stringurile și cheile sunt fundamentul utilizării zilnice a Redis, deci înțelegerea lor este o cunoaștere esențială și frecvent aplicată. Stringurile (cel mai basic și versatil tip de valoare din Redis) sunt folosite constant — pentru valori în cache, flag-uri, date serializate și mai ales pentru contori atomici: comenzile atomice INCR/DECR fac stringurile perfecte pentru a număra lucruri corect (vizualizări de pagini, rate limits, ID-uri) chiar și sub acces concurent, fără condiții de curs — o capacitate valoroasă și frecvent utilizată.
Înțelegerea comenzilor pentru stringuri (inclusiv SET cu expirare pentru TTL-uri, SETNX pentru set-if-not-exists care este util pentru lock-uri) este cunoaștere practică zilnică. Cheile identifică toate datele din Redis, iar înțelegerea gestionării cheilor este la fel de importantă: convenția de denumire a namespace-urilor separate prin două puncte (user:1000:name) pentru organizarea logică a cheilor este o practică recomandată larg utilizată care ține datele din Redis ușor de gestionat, iar cunoașterea comenzilor pentru chei (EXISTS, DEL, TYPE, RENAME) este esențială.
Un punct practic deosebit de important este evitarea KEYS în producție (scanează fiecare cheie, blocând serverul cu un singur thread — un pericol real pentru performanță și disponibilitate) în favoarea SCAN pentru iterație sigură — o problemă frecventă în producție care merită cunoscută.
Deoarece stringurile și cheile sunt implicate în practic fiecare interacțiune cu Redis, și deoarece înțelegerea comenzilor pentru stringuri (în special contori atomici), convenții de denumire a cheilor și gestionare a cheilor (inclusiv preocuparea KEYS-vs-SCAN pentru producție) este fundamentală pentru a folosi Redis corect și sigur, înțelegerea stringurilor și cheilor este o cunoaștere esențială, obligatorie pentru munca zilnică cu Redis, fundamentul practic pentru stocarea și gestionarea datelor în Redis.
