LPUSH / RPUSH în Redis & In-Memory Data Store

Comenzi pentru liste Redis 1.0.0

Adaugă elemente la începutul (LPUSH) sau la sfârșitul (RPUSH) unei liste, creând lista dacă lipsește.

Sintaxă comandă
LPUSH key element [element ...]
RPUSH key element [element ...]
LPUSHX key element [element ...]

Ce face LPUSH / RPUSH

O listă Redis este un șir ordonat de valori, în care poți adăuga și scoate rapid la ambele capete. LPUSH pune elementele în stânga (la început), iar RPUSH în dreapta (la sfârșit).

Cu mai multe elemente într-o singură comandă (din Redis 2.4.0), LPUSH le inserează pe rând, așa că ultimul element dat ajunge primul în listă. LPUSHX și RPUSHX adaugă doar dacă lista există deja.

Parametri

Parametru Descriere
key Cheia listei.
element ... Valorile de adăugat.

Ce returnează

Un (integer): lungimea listei după adăugare.

Exemple

Exemplul 1: Coadă de comenzi: RPUSH adaugă la final

Comenzile rămân în ordinea în care au venit.

RPUSH coada:comenzi 1041 1042
RPUSH coada:comenzi 1043
LRANGE coada:comenzi 0 -1

Ieșire în redis-cli

127.0.0.1:6379> RPUSH coada:comenzi 1041 1042
(integer) 2
127.0.0.1:6379> RPUSH coada:comenzi 1043
(integer) 3
127.0.0.1:6379> LRANGE coada:comenzi 0 -1
1) "1041"
2) "1042"
3) "1043"

Exemplul 2: Ultimele produse văzute: LPUSH adaugă la început

Cu mai multe elemente, ordinea se inversează: „mouse” a fost inserat ultimul, deci e primul.

LPUSH vazute:ana laptop caiet mouse
LRANGE vazute:ana 0 -1
LPUSHX vazute:dan monitor

Ieșire în redis-cli

127.0.0.1:6379> LPUSH vazute:ana laptop caiet mouse
(integer) 3
127.0.0.1:6379> LRANGE vazute:ana 0 -1
1) "mouse"
2) "caiet"
3) "laptop"
127.0.0.1:6379> LPUSHX vazute:dan monitor
(integer) 0

Greșeli frecvente

  • LPUSH a b c NU păstrează ordinea a, b, c: rezultatul este c, b, a. Folosește RPUSH dacă vrei ordinea dată.
  • O listă care doar crește consumă tot mai multă memorie; combin-o cu LTRIM sau folosește un stream cu MAXLEN.

Comenzi înrudite

  • LPOP / RPOP: Scoate și întoarce primul (LPOP) sau ultimul (RPOP) element dintr-o listă; cu count, mai multe deodată.
  • LRANGE: Întoarce elementele unei liste dintre doi indici, inclusiv; LRANGE key 0 -1 întoarce toată lista.
  • LTRIM: Păstrează doar elementele dintre doi indici și le șterge pe restul; ideal pentru liste cu lungime maximă.
  • BLPOP / BRPOP: Scoate primul element dintr-o listă; dacă toate listele sunt goale, așteaptă (blochează) până apare un element sau expiră timpul.