Expirarea Cheilor și Politici de Evacuare a Memoriei în Redis (TTL & Eviction) în Redis & In-Memory Data Store

Află cum gestionează Redis expirarea cheilor prin EXPIRE și TTL și cum să configurezi politicile de memorie maxmemory-policy (allkeys-lru, volatile-lru).

Sintaxă comandă
EXPIRE key 3600 | TTL key | maxmemory-policy allkeys-lru

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.
Comunitate & Schimb de cunoștințe

Î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.

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.