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 cNU păstrează ordinea a, b, c: rezultatul este c, b, a. FoloseșteRPUSHdacă vrei ordinea dată.- O listă care doar crește consumă tot mai multă memorie; combin-o cu
LTRIMsau folosește un stream cuMAXLEN.
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.