Co to jest skanowanie Redis?
Jak wspomniano, skan w Redis jest iteratorem opartym na kursorze, który pozwala iterować zestaw klawiszy w określonej bazie danych Redis. Polecenie akceptuje pozycję kursora jako argument.
Serwer zwraca kursor aktualizacji za każdym razem, gdy wywoływane jest polecenie. Korzystanie z zaktualizowanego kursora jako argumentu w następującym wywołaniu poleceń można użyć.
Iteracja rozpoczyna się, gdy kursor znajduje się w pozycji 0 i zatrzymuje się, gdy kursor pochodzący z serwera wynosi 0.
Korzystanie ze skanowania - przykłady
Weźmy kilka przykładów, aby zilustrować, jak działa polecenie skanowania. Zacznij od utworzenia zbioru klawiszy i wartości, jak pokazano w poniższym poleceniu:
127.0.0.1: 6379> MSET KEY1 Wartość 1 Klucz2 Wartość 2 Wartość 3 Wartość 4 Wartość 4 Klucz5 Wartość 5 Klucz6 Wartość6
OK
Powyższy przykład wstawiaj zestaw par manekina i par do celów ilustracyjnych.
Teraz, gdy mamy bazę danych z klawiszami i wartościami, możemy użyć polecenia skanowania, aby iterować klawisze.
Polecenie można wykonać jako:
127.0.0.1: 6379> Skan 0
1) „0”
2) 1) „Key4”
2) „RQ: skończone: domyślnie”
3) „Key5”
4) „Key6”
5) „Key2”
6) „Key3”
7) „RQ: Kolejki”
8) „Key1”
9) „Kapitanowie”
Po uruchomieniu polecenia będzie ono iterowane przez klawisze w bazie danych i zwróci wszystkie dostępne klucze.
Uwaga: polecenie skanowania zwróci tylko pierwsze dziesięć klawiszy w bazie danych. Ponieważ polecenie skanowania może pobrać pierwsze dziesięć elementów w naszym przykładzie, zwraca wartość liczb całkowitą 0, jak pokazano powyżej.
Weźmy przykład, w którym kursor powrócił z serwera, nie jest 0. Jeśli dodamy klucze, jak pokazano w poniższym poleceniu:
MSET KEY7 Wartość 7 Klucz8 Wartość 8 Klucz9 Wartość 9 Klucz10 Wartość10 Klucz11 Wartość11 Klucz12 Wartość12
Jeśli ponownie utworzymy polecenie skanowania, zwróci ostatnią pozycję, w której zatrzymał się kursor.
127.0.0.1: 6379> Skan 0
1) „13”
2) 1) „Key4”
2) „Key9”
3) „RQ: gotowe: domyślnie”
4) „Key5”
5) „Key6”
6) „Key8”
7) „Key2”
8) „Key3”
9) „Key10”
10) „Key7”
11) „RQ: Kolejki”
W tym przykładzie pozycja kursora wynosi 13. Możemy użyć tej pozycji do zeskanowania pozostałych kluczy.
127.0.0.1: 6379> Scan 13
1) „0”
2) 1) „Key11”
2) „Key1”
3) „Key12”
4) „Kapitanowie”
Ponieważ polecenie pobiera wszystkie klucze, w tym przypadku zwraca kursor w pozycji 0.
Opcje skanowania
Polecenie skanowania akceptuje dwie główne opcje:
Liczba skanowania
Polecenie Count umożliwia zmodyfikowanie liczby kluczy, które polecenie skanowania przyniesie za połączenie. Domyślnie polecenie skanowania przynosi dziesięć kluczy.
Możemy jednak to zmodyfikować, ustawiając polecenie Count.
127.0.0.1: 6379> Skanuj 0 Count 15
Przykładowe dane wyjściowe z powyższego polecenia jest jak pokazano:
1) „0”
2) 1) „Key4”
2) „Key9”
… Obcięte…
14) „Key12”
15) „Kapitanowie”
W tym przykładzie ustawiamy kursor, aby zwrócił 15 elementów zamiast domyślnego 10. Ponieważ w bazie danych jest nie więcej niż 15 kluczy, serwer zwraca pozycję kluczową na 0.
Mecz skanowania
Opcja dopasowania pozwala skanować klawisze, które pasują do określonego wzoru. Na przykład, aby zwrócić wszystkie klucze pasujące K*, możemy zrobić.
127.0.0.1: 6379> SKANOWANIE 0 MATK K*
1) „13”
2) 1) „Key4”
2) „Key9”
3) „Key5”
4) „Key6”
5) „Key8”
6) „Key2”
7) „Key3”
8) „Key10”
9) „Key7”
Powyższe polecenie zwraca tylko klawisze pasujące do określonego wzoru.
Możesz użyć opcji dopasowania i zliczania w tym samym poleceniu.
127.0.0.1: 6379> Skanuj 0 dopasowanie K* Count 15
1) „0”
2) 1) „Key4”
2) „Key9”
---KADŁUBOWY---
11) „Key1”
12) „Key12”
Wniosek
Ten przewodnik zawiera wykorzystanie podstaw i przykłady korzystania z komendy SCAN REDIS. Skan umożliwia iterowanie klawiszy bazy danych za pomocą pozycji kursora. Możesz sprawdzić dokumentację więcej odmian skanowania.