Pentru a funcționa ca un cache eficient și sigur, Redis oferă mecanisme precise de expirare automată a datelor bazate pe timp (Time-To-Live – TTL). În plus, atunci când memoria RAM atinge limita configurată (maxmemory), Redis aplică algoritmi de evacuare pentru a elibera spațiu fără a bloca noile scrieri.
Controlul expirării și verificarea timpului de viață în redis-cli
# 1. Setarea unei chei cu expirare directă la creare
SET sesiune:auth:tk9982 "user_id_482" EX 7200 # Expiră în exact 7200 secunde (2 ore)
SET cod:sms:58102 "9412" EXAT 1735689600 # Expiră la un timestamp Unix precis
# 2. Setarea expirării pe o cheie existentă
EXPIRE sesiune:auth:tk9982 1800 # Resetează TTL la 30 de minute (1800s)
PEXPIRE cheie:temporara 500 # Expirare în milisecunde (500ms)
# 3. Interogarea timpului rămas de viață
TTL sesiune:auth:tk9982 # Returnează secunde rămase (ex: 1785)
# Răspunsuri speciale:
# -1 : Cheia există dar nu are expirare setată (persistență infinită)
# -2 : Cheia nu există (a expirat sau nu a fost creată)
# 4. Eliminarea expirării (cheia devine permanentă)
PERSIST sesiune:auth:tk9982
Politici de Evacuare a Memoriei (maxmemory-policy)
Când consumul de RAM atinge pragul maxmemory definit în redis.conf, serverul evacuează chei pe baza politicii alese:
| Politică (maxmemory-policy) | Comportament la umplerea RAM | Caz optim de utilizare |
|---|---|---|
noeviction (implicit) |
Returnează eroare la orice comandă nouă de scriere (read-only). | Când Redis este utilizat ca bază de date primară și pierderea de date este inacceptabilă. |
allkeys-lru |
Evacuează cheile cel mai puțin recent utilizate (Least Recently Used) din toate cheile. | Recomandat pentru caching pur (aplicații web, răspunsuri API, interogări DB). |
volatile-lru |
Evacuează LRU doar dintre cheile care au o expirare (TTL) setată explicit. | Când combini cache-ul temporar cu date persistente pe același server Redis. |
allkeys-lfu |
Evacuează cheile cel mai rar accesate ca frecvență (Least Frequently Used). | Optimizare avansată când unele chei sunt accesate intens pe perioade lungi. |
Întrebări & Exemple de Cod:
Expirarea Cheilor și Politici de Evacuare a Memoriei în Redis (TTL & Eviction)Ai o nelămurire despre utilizarea comenzii
Expirarea Cheilor și Politici de Evacuare a Memoriei în Redis (TTL & Eviction)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.