Ponadto, gdy wszystkie elementy zostaną wyskakowane z listy, powiązany klucz zostanie usunięty z przestrzeni Klucz Redis. Lista Redis jest idealnym kandydatem do aplikacji o niskiej opóźnienia, ponieważ operacje wstawiania i usuwania mają stałą złożoność czasu w GŁOWA I OGON. Nie ma znaczenia, czy na liście znajduje się pięć czy tysiąc elementów. Czas na wstawienie i usunięcie trwa ciągły czas w pobliżu lewego i prawego końca.
Istnieje pewne praktyczne potrzeby usuwania elementów z ogona lub głowy danej listy. BRPOP I Blpop Polecenia są wprowadzane z wersji 2 Redis.0.0 Aby spełnić wymieniony wymóg. BRPOP Polecenie jest oceniane w tym przewodniku.
Polecenie BRPOP
BRPOP to zaawansowana wersja RPOP Komenda. RPOP Polecenie wyskakuje element z ogona listy, który jest przechowywany w danym kluczu. Jak sama nazwa wskazuje, polecenie BRPOP jest wersją blokującą RPOP. Gdy klucz nie istnieje, polecenie BRPOP nie powróci z zero wartość od razu jak w poleceniu RPOP. Zamiast tego czeka, aż nowa lista zostanie utworzona w tym kluczu. Po utworzeniu nowej listy u wspomnianego klawisza polecenie BRPOP wyskakuje w element ogona. Ponadto to polecenie akceptuje wiele klawiszy i wyskakuje tylko elementy z pierwszego klucza nie pustego.
Składnia:
Poniżej znajduje się składnia dla polecenia BRPOP:
BRPOP LIST_KEY [LIST_KEY…] Limit czasu
LIST_KEY: To jest klucz listy.
koniec czasu: Jest to wartość limitu czasu w sekundach, w których klient jest zablokowany do momentu osiągnięcia tego czasu.
Zwykle polecenie BRPOP zwraca wyjście tablicy:
Jeśli podano listę nieustanną, polecenie zwraca wartość elementu wyspped i klucz zawierającej listy jak w następującym formacie:
1) „Carlist”
2) „Benz”
Kiedy żaden element nie ma być wyskakujący z żadnej z określonych list, a limit czasu wygasł, zero Wartość jest zwracana.
(zero)
(10.46s)
Przykład: Manipulacja odtwarzaniem stacji radiowej z BRPOP
Załóżmy, że stacja radiowa musi odtwarzać piosenki z codziennej listy odtwarzania. Lista odtwarzania zawiera identyfikatory piosenki do zagrania. Piosenki powinny być zamówione w kolejności wstawiania. Każda piosenka jest wybierana od końca listy odtwarzania do zagrania.
Możemy użyć struktury danych Redis List do wdrożenia wspomnianej listy odtwarzania i operacji listy w celu manipulowania piosenek odtwarzania. Utwórzmy listę odtwarzania o nazwie PółnocnaPlayList i dodaj kilka identyfikatorów piosenek, jak pokazano następujące. LPUSH Do tego używane jest polecenie:
LPUSH MidnightPlayList Song001 Song004 Song010 Song100 Song101
Utworzy to listę, jak pokazano następująco:
Głowa -> Song101 | Song100 | Song010 | Song004 | Song001 <- tail
Nie blokujące zachowanie polecenia BRPOP
Teraz nadszedł czas, aby rozpocząć program. Powinniśmy wybrać piosenki z końca listy odtwarzania. Stąd, Song001 powinien zostać usunięty z listy odtwarzania i musi być odtwarzany przez rejestrator. Używamy polecenia BRPOP, aby wyskoczyć Song001 z listy odtwarzania i zdobycie identyfikatora piosenki do słuchacza klienta.
BRPOP MidnightPlayList 5
Argument limitu czasu jest określony jako pięć sekund. Od PółnocnaPlayList zawiera elementy, BRPOP Polecenie zachowuje się w sposób niekakujący. Stąd wyskakuje i zwraca element ogona do klienta.
Blokowanie zachowania polecenia BRPOP
Poprzednie wyniki można również osiągnąć za pośrednictwem polecenia RPOP. Dlatego spójrzmy na prawdziwą przewagę polecenia BRPOP z zachowaniem blokującym. Usuńmy wszystkie elementy z PółnocnaPlayList klucz za pomocą polecenia RPOP.
RPOP MidnightPlayList 4
To usuwa wszystkie pozostałe elementy z listy i PółnocnaPlayList Klucz jest również usunięty z miejsca Redis Key.
Wykonajmy polecenie BRPOP z 60-sekundowym limitu czasu i nieistniejącym kluczem PółnocnaPlayList. Teraz polecenie zachowuje się w sposób blokujący. Czeka na stworzenie klucza i element obecny na liście odtwarzania PółnocnaPlayList.
Przeciśnijmy element do północy Playlist za pomocą innego okna terminala podłączonego do tego samego magazynu danych Redis.
LPUSH MidnightPlayList Song400
Po stworzeniu PółnocnaPlayList Lista z elementem Song400, Okno klienta, które wykonało polecenie BRPOP, wyskakuje element Song400 z listy odtwarzania i natychmiast zwraca identyfikator piosenki.
Wybierz piosenkę z wielu list odtwarzania
Może być wiele list odtwarzania przez stacją radiową. Dlatego powinniśmy wybrać piosenkę z danych list odtwarzania w danym momencie. Załóżmy, że mamy trzy listy odtwarzania: MidnightPlayList1, MidnightPlayList2, I MidnightPlayList3. MidnightPlayList1 jest już pusty, podczas gdy pozostałe dwie listy odtwarzania nie są puste.
LPUSH MidnightPlayList2 Song1002 Song1005
LPUSH MidnightPlayList3 Song3000
Nazwijmy polecenie BRPOP wszystkimi trzema klawiszami, jak pokazano następująco:
BRPOP MidnightPlayList1 MidnightPlayList2 MidnightPlayList3 10 10
Od pierwszego klucza MidnightPlayList1 jest pusty, jest ignorowane przez polecenie tutaj. Sprawdza pierwszy klawisz nie pusty z listy dostępnych. Stąd polecenie lokalizuje MidnightPlayList2 Jako pierwszy nieudkowany klucz z kolejności kluczy. Zgodnie z oczekiwaniami, Song1002 jest usuwany z MidnightPlayList2.
Polecenie BRPOP ma stałą złożoność czasu w pobliżu głowy i ogona, gdy określono pojedynczy klucz. Złożoność czasu staje się O (n), gdy w poleceniu określono wiele kluczy. Ponadto to polecenie jest bardzo wydajne w zastosowaniach w aplikacjach o niskich opóźnień, takich jak kolejka, stos, harmonogram w mediach społecznościowych itp.
Wniosek
Podsumowując, lista Redis to zbiór elementów ciągów przechowywanych w danym kluczu, podczas gdy w kolejności wstawiania. Dostępnych jest kilka poleceń do działania na listach Redis o stałej złożoności czasu w pobliżu głowy i ogona. Jak wspomniano, polecenie BRPOP służy do usunięcia elementów z prawej strony listy Redis przechowywanej na danym klawiszu z obsługą blokowania. Polecenie BRPOP blokuje połączenie klienta, gdy nie są dostępne żadne elementy do usunięcia z określonych list. Jak wiecie, to polecenie akceptuje wiele klawiszy, w których element wyskakuje z pierwszej listy nie pustej.