Zwykle polecenia GET i SET są używane do przechowywania i pobierania wartości typu ciągów przechowywanych na danym kluczu Redis. Te dwa polecenia działają ze stałą złożonością czasu.
Ponadto, polecenie getex jest dostępne do odczytania wartości ciągów przechowywanych w danym kluczu. Ale to polecenie jest również powiązane z równoległym operacją zapisu. Ten przewodnik skupi się na składni polecenia GetEx, jego opcjach i przypadkach użycia.
Ttl z klawisza Redis
Czas na żywo (TTL) to czas ważności danego elementu danych. Zwykle TTL może być powiązane z wierszami bazy danych. Limit czasu można również ustawić za pomocą klawiszy Redis. Tak więc klient Redis może sprawdzić pozostałe sekundy, że dany klucz będzie dostępny w magazynie danych. Redis oferuje polecenie TTL, aby sprawdzić czas na żywo wartości danego klucza. Jeśli limit czasu nie jest powiązany z określonym kluczem, polecenie TTL zwraca -1. Użyjemy polecenia TTL w następnych sekcjach, aby sprawdzić pozostały czas danego klucza.
Polecenie getex
Jak podkreślono, polecenie getex jest bardziej podobne do polecenia get, z tym wyjątkiem, że można je użyć do ustalenia czasu ważności określonego klucza. Ponadto opcja polecenia może usunąć wartość limitu czasu z danego klucza. Składnia polecenia getex jest następujące:
Klucz getex [ex timeout_in_seconds | PX TIMEOUT_IN_MILLISECONDS | Exat Timeout_In_Unix-czas-sekundów | PXAT TIMEOUT_IN_Unix-TIME MILLISECONDS | TRWAĆ]
klucz: To jest klucz, który wskazuje na wartość ciągu.
Do ustawienia limitu czasu w sekundach lub milisekundach można użyć następujących opcjonalnych argumentów.
BYŁY: To ustanowi czas ważności w sekundach dla danego klucza.
PX: Kluczowa wartość limitu czasu zostanie ustawiona w milisekundach.
Ponadto możemy określić wartość znacznika czasu UNIX w sekundach lub milisekundach za pomocą następujących opcji poleceń Exat I Pxat:
Exat: Czas ważności zostanie ustawiony w formacie znacznika czasu UNIX, a znacznik czasu będzie za kilka sekund.
Pxat: Limit czasu dla danego klucza Redis zostanie ustawiony jako znacznik czasu UNIX w milisekundach.
TRWAĆ: Określając to, możesz usunąć czas do wartości na żywo powiązany z określonym kluczem.
Polecenie getex zwraca wartość określonego klucza. To polecenie działa tylko z wartościami typu ciągu, ale nie skrótów, list, sortowanych zestawów itp. Jeśli określisz klucz powiązany z wartością nieprzestrzenioną, polecenie zwróci błąd. Ponadto, jeśli klucz jest już wygasł lub nie istnieje, polecenie powróci zero.
W poniższej sekcji omówimy praktyczne użycie polecenia getex.
Przypadek użycia - link tymczasowego resetowania lub generowanie kodu PIN dla odzyskiwania hasła/OTPS
Firma hostingowa dostarcza funkcję odzyskiwania hasła dla zarejestrowanych użytkowników. Jako środek bezpieczeństwa wysyłają do użytkownika nowy link URL, który wygasnie w ciągu 5 minut. Firma od dawna korzysta ze sklepu danych Redis i używa polecenia getex, aby ustawić czas na żywo dla danego użytkownika.
Załóżmy, że użytkownik z user_id 1000 żąda odzyskiwania hasła. Tak więc adres URL odzyskiwania może być przechowywany w kluczu COCTERSURL: UserID: 1000. Możemy użyć polecenia Set do przechowywania adresu URL odzyskiwania w następujący sposób:
Ustaw cecoversUrl: UserID: 1000 "https: // ABC.com/ceconsive/userid = 1000, key = sdfiuoe3290e9rjs ”
Sprawdźmy, czy adres URL łańcucha jest odpowiednio przechowywany w kluczu COCTERSURL: UserID: 1000. Możemy użyć polecenia getex w następujący sposób:
GetEx ConsecurationUrl: UserID: 1000
Dane wyjściowe poprzedniego polecenia pokazano następująco:
Jeśli użyliśmy polecenia GET zamiast polecenia getex, wyjście będzie takie samo.
Użyjmy polecenia TTL, aby sprawdzić, czy czas ważności jest powiązany z tym kluczem.
TTL RecoverySurl: UserID: 1000
Zgodnie z oczekiwaniami, -1 został zwrócony przez polecenie TTL, co oznacza, że nie jest powiązany czas wygaśnięcia z określonym kluczem.
Zgodnie z tym przykładem firma hostingowa musi ustawić 5 minut czasu na adres URL odzyskiwania. Więc będziemy używać BYŁY Opcja polecenia. Ponieważ 5 minut to 300 sekund, możemy skonstruować polecenie getex w następujący sposób:
GetEx RecoverySurl: UserID: 1000 EX 500
Uruchommy polecenie TTL kilka razy, aby sprawdzić pozostały czas, w którym klucz będzie w magazynie danych.
Zgodnie z oczekiwaniami czas maleje, a ostatecznie COCTERSURL: UserID: 1000 Klucz zostanie usunięty. Poniżej znajduje się wyjście po 5 minutach:
-2 został zwrócony przez polecenie, co oznacza, że klucz jest wygasł i usuwany z magazynu danych.
Czasami może być konieczne usunięcie wartości limitu czasu powiązanego z danym kluczem. Zatem opcja PRZYGOTOWANIA Polecenia można użyć do usunięcia wartości TTL związanej z określonym kluczem.
Utwórzmy kolejny przykładowy klawisz i przypiszmy do niego wartość ciągu. W takim przypadku określamy wartość TTL w milisekundach, przekazując Px opcja.
Ustaw keytotestpersist „Zostanie to wygasłe w ciągu 60 sekund” PX 50000
Następnie będziemy sprawdzić pozostały czas w następujący sposób:
Zgodnie z oczekiwaniami, TTL maleje. Zadzwońmy do polecenia getex z opcją trwaj w następujący sposób:
GetEx Keytotestpersist utrzymuje się
Idealnie byłoby to usunięcie TTL powiązane z tym kluczem. Sprawdźmy TTL pod kątem klucza Keytotestpersist.
Polecenie TTL zwróciło -1, co oznacza, że żadne TTL nie jest powiązane z kluczem Keytotestpersist.
Podobnie Getex Dowództwo można użyć do ustawienia czasu ważności kluczy w znaczniku czasu Unix.
Wniosek
Podsumowując, polecenie Redis GetEx może być używane do pobierania wartości ciągów przechowywanych w danym kluczu, ponieważ polecenie GET. Jedyną różnicą z poleceniem GETEX jest to, że obsługuje ustawienie i usuwanie czasów ważności dla danego klucza. Obsługuje kilka opcjonalnych argumentów w celu określenia czasu wygaśnięcia w sekundach, milisekundach i sekundach UNIX-TimeStamp. Jak omówiono, polecenie zawiera opcję utrzymywania się w celu usunięcia powiązanego TTL dla danego klucza. Ogólnie rzecz biorąc, polecenie getex działa ze stałą złożonością czasu.