Lista Redis to uporządkowana sekwencja ciągów. Może pomieścić do czterech miliardów elementów strunowych. Zasadniczo listy Redis są używane do wdrażania kolejek, stosów i kolejek do zadań w tle. Redis to sklep z kluczową wartością, ale nadal obsługuje strukturę danych z listy, która jest unikalną cechą Redis wśród innych magazynów danych o wartości kluczowej. Elementy można wypchnąć zarówno z głowy, jak i ogona. Operacje listy Redis działają w stałej złożoności czasu na głowie lub ogonie, co jest wysoce wydajne.
Ponadto listę Redis można porównać do listy Java Array, JavaScript Array lub Python List.
Ujawniono polecenie Redis LPOP
Polecenie LPOP usuwa lub usuwa elementy z głowicy określonej listy Redis. Domyślnie wyskakuje pierwszy element z głowy lub przodu listy, który jest wysoce wydajny, ponieważ operacje listy Redis na głowie lub ogonie działają w stałej złożoności czasu. Ponadto polecenie LPOP przyjmuje opcjonalny argument zliczania, który zmusza go do usunięcia określonej liczby elementów od początku szefa listy. Opcjonalny argument liczby został dodany do polecenia Redis LPOP z wersji 6.2.0.
Rzućmy okiem na składnię polecenia LPOP.
LPOP KEY_OF_LIST 1
Key_of_list: Nazwa klucza listy Redis
LICZYĆ: Liczba elementów do usunięcia z głowicy/przodu listy przechowywanej w określonym klawiszu key_of_list.
Gdy argument liczby nie jest określony, polecenie LPOP zwraca pojedynczy wyskakujący element z przodu listy zapisanej na określonym klawiszu. Ilekroć określa się argument liczby wraz z kluczem listy Redis, polecenie LPOP zwraca tablicę elementów wyspowych do klienta.
Przypadek użycia: Wdrożenie kolejki z listą Redis i poleceniem LPOP
Zasadniczo kolejka jest strukturą danych, która zachowuje się w naturze pierwszego w pierwszym miejscu. Listy Redis można użyć do wdrożenia zachowania kolejki za pomocą polecenia LPOP wraz z poleceniem RPUSH.
Utwórzmy listę o nazwie „Pacjenci” dodając pięć elementów, jak pokazano następujące. Ponieważ skupiamy się na kolejce, polecenie RPUSH powinno być używane do wstawienia każdego nowego elementu z ogona listy.
Rpush pacjenci „Derek” „Mary” „Nishu” „Jack” „Chan”
Możemy sprawdzić Pacjenci Lista w następujący sposób:
Załóżmy, że pierwszy pacjent jest już obsługiwany przez szpital. Stąd usunęmy pierwszą osobę z kolejki za pomocą polecenia LPOP w następujący sposób.
Pacjenci z LPOP
Powinno to usunąć „derek” z kolejki i zwrócić ją w następujący sposób, ponieważ polecenie LPOP domyślnie usuwa pojedynczy element z główki listy.
Możemy sprawdzić wynikową kolejkę za pomocą polecenia LRANGE, jak pokazano następująco:
Pacjenci LRange 0 -1
„Derek” wyskoczył już z kolejki i pozostały tylko cztery elementy. Tak więc Mary jest teraz pierwszą osobą w kolejce.
Załóżmy scenariusz, w którym zarówno Mary, jak i Nishu są podawane, podając szczepionkę. Powinniśmy więc usunąć obu pacjentów jednocześnie za pomocą polecenia LPOP w następujący sposób:
Pacjenci z LPOP 2
Argument zliczania to 2 w powyższym poleceniu, które powinny wyskoczyć z pierwszych dwóch elementów z Pacjenci kolejka.
Możemy sprawdzić kolejkę za pomocą polecenia Lrange w następujący sposób:
Zgodnie z oczekiwaniami Mary i Nishu zostali usunięci z listy Redis.
Istnieją pewne przypadki, w których określony klucz listy nie jest dostępny w magazynie danych Redis. W takim przypadku polecenie LPOP zwraca zero wyjście w następujący sposób:
LPOP NonxistingKey
Podobnie lista Redis i polecenie LPOP można użyć do wdrożenia kolejki zadań w tle w systemie. Ponadto polecenie LPOP ma swój wariant blokujący znany jako BLPOP, który blokuje klienta, dopóki element nie będzie dostępny na liście lub limicie czasu. RPOP jest przeciwną wersją polecenia LPOP, która usuwa elementy z ogona listy Redis.
Wniosek
Podsumowując, polecenie LPOP działa na strukturach danych Redis List. Domyślnie usuwa pierwszy element określonej listy i zwraca element klientowi. Jak omówiono, polecenie LPOP zajmuje tylko stały czas na działanie na czele lub ogon listy, która jest wysoce wydajna. Liczbę elementów do usunięcia z listy można określić opcjonalnie wraz z kluczem listy. Polecenie LPOP jest używane w różnych aplikacjach do wdrażania kolejek, stosów i menedżerów w kolejce do zadań w tle. Ogólnie rzecz biorąc, polecenie Redis LPOP zachowuje się dokładnie tak samo jak polecenie RPOP, ale po głównej lub przedniej stronie danej listy.