Ce face LPOP / RPOP
LPOP elimină și întoarce elementul din stânga listei, iar RPOP pe cel din dreapta. Combinat cu RPUSH, LPOP face o coadă FIFO (primul venit, primul servit); combinat cu LPUSH, face o stivă.
Din Redis 6.2.0 poți da un count ca să scoți mai multe elemente deodată; atunci răspunsul este o listă. Când lista rămâne goală, cheia este ștearsă.
Parametri
| Parametru | Descriere |
|---|---|
key |
Cheia listei. |
count |
Câte elemente să scoată (Redis 6.2+). |
Ce returnează
Fără count: elementul sau (nil) dacă lista nu există. Cu count: o listă cu elementele scoase.
Exemple
Exemplul 1: Procesarea unei cozi în ordine
Primul element adăugat este primul scos.
RPUSH coada:email ana@exemplu.ro dan@exemplu.ro ioana@exemplu.ro
LPOP coada:email
LPOP coada:email 2
LPOP coada:email
Ieșire în redis-cli
127.0.0.1:6379> RPUSH coada:email ana@exemplu.ro dan@exemplu.ro ioana@exemplu.ro
(integer) 3
127.0.0.1:6379> LPOP coada:email
"ana@exemplu.ro"
127.0.0.1:6379> LPOP coada:email 2
1) "dan@exemplu.ro"
2) "ioana@exemplu.ro"
127.0.0.1:6379> LPOP coada:email
(nil)
Exemplul 2: Stivă de acțiuni pentru „Anulează”
RPOP pe o listă construită cu RPUSH întoarce ultima acțiune.
RPUSH istoric:ana adauga-text sterge-rand bold
RPOP istoric:ana
Ieșire în redis-cli
127.0.0.1:6379> RPUSH istoric:ana adauga-text sterge-rand bold
(integer) 3
127.0.0.1:6379> RPOP istoric:ana
"bold"
Greșeli frecvente
LPOPnu așteaptă: pe o listă goală întoarce imediat(nil). Pentru workeri care așteaptă mesaje foloseșteBLPOP.- Dacă workerul cade după
LPOP, mesajul se pierde. Pentru cozi sigure foloseșteLMOVEîntr-o listă de „în lucru” sau Redis Streams.
Comenzi înrudite
LPUSH / RPUSH: Adaugă elemente la începutul (LPUSH) sau la sfârșitul (RPUSH) unei liste, creând lista dacă lipsește.BLPOP / BRPOP: Scoate primul element dintr-o listă; dacă toate listele sunt goale, așteaptă (blochează) până apare un element sau expiră timpul.LMOVE / BLMOVE: Mută atomic un element dintr-o listă în alta, alegând capătul din care scoate și capătul în care pune.LLEN: Întoarce numărul de elemente dintr-o listă; 0 dacă lista nu există.
Întrebări & Exemple de Cod:
LPOP / RPOPAi o nelămurire despre utilizarea comenzii
LPOP / RPOPsau 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.