Redis Manipulacja liczbą całkowitą
Typ ciągu jest najbardziej fundamentalnym typem danych, jaki oferuje Redis. Strings Redis są w stanie przechowywać teksty, serializowane obiekty JSON, obrazy, audio, a nawet wartości numeryczne. W tym przewodniku skupimy się na wartościach numerycznych i manipulacji liczbami całkowitych. Redis nie obsługuje oddzielnych typów danych liczb całkowitych, aby przechowywać dane numeryczne. Jeśli klawisz Redis zawiera ciąg, który może być reprezentowany jako liczba całkowita, Redis może interpretować wartości liczbowe jako 64-bitowe liczby całkowite Base-10.
Manipulacja liczbą jest niezwykle przydatną funkcją w dowolnej bazie danych. Redis oferuje kilka przydatnych operacji do pracy na typach liczb całkowity. W tym przewodniku polecenie, które działa na typach liczb całkowitych, jest szczegółowo wyjaśnione.
Polecenie spadające
Komenda RENT jest wprowadzana w celu zmniejszenia wartości liczbowej, która jest przechowywana w danym kluczu według jednego. Działa to tylko na wartościach ciągów, które mogą być reprezentowane jako 64-bitowa liczba całkowita Base-10. Komenda REn rzuca błąd dla wartości nierównosionowych lub wartości ciągu, których nie można reprezentować jako liczby całkowite.
Poniżej znajduje się składnia polecenia DUNK:
Zatrzyj klucz
Klucz: Klucz, który utrzymuje wartość ciągu.
Komenda REn zwraca wynikową podpisaną liczbę całkowitą po operacji zmniejszenia. Jeśli określony klucz nie istnieje, polecenie ustawia wartość na 0, a następnie zmniejsza ją o jeden. Również błąd jest wyświetlany, gdy wartość jest nierównana lub nie może być reprezentowana jako 64-bitowa liczba całkowita. To polecenie działa na stałej złożoności czasowej (O (1)), która jest niezwykle szybka.
Przypadek użycia - Zmniejszenie zdrowia gracza w grze online
Załóżmy, że gra online, w której zdrowie każdego gracza jest zwiększane o jedną, gdy ujawnia się medi-pak. Podobnie zdrowie zmniejsza się o jeden, jeśli gracz upada lub zostanie trafiony przez innego gracza.
Idealnym kandydatem do przechowywania zdrowia gracza jest typ sznurka Redis, w którym możemy przechowywać zdrowie jako liczbę całkowitą. Utwórzmy klucz Zdrowie: PlayerID: 1 i ustaw swoją wartość na 10. Możemy użyć polecenia Set w następujący sposób:
Ustaw zdrowie: PlayerID: 1 10
Możemy użyć polecenia GET, aby zweryfikować wartość przechowywaną w Zdrowie: PlayerID: 1.
Zdobądź zdrowie: gracz: 1
Powiedzmy, że gracz z ID 1 zostaje trafiony, a zdrowie powinno zostać zmniejszone. Komenda Run można użyć w następujący sposób:
Zmniejszenie zdrowia: gracz: 1
Zgodnie z oczekiwaniami, polecenie RENT drukuje zaktualizowaną wartość po operacji spadku, jak pokazano na poniższym rysunku:
Możemy również sprawdzić wartość przechowywaną w kluczu Zdrowie: PlayerID: 1 z poleceniem GET.
Zdobądź zdrowie: gracz: 1
Zgodnie z oczekiwaniami wartość spadła o jeden.
Operator spadku jest również ważny z liczbami ujemnymi. Przechowujmy nową negatywną wartość liczbową na kluczu Negatywne: wartość1.
Ustaw negatywne: wartość1 -3
Możemy sprawdzić wartość za pomocą polecenia GET w następujący sposób:
Uzyskaj ujemne: wartość 1
Poniższe polecenie pokazuje, w jaki sposób polecenie RUN jest używane na kluczu Negatywne: wartość 1:
Decor ujemny: wartość1
Polecenie spadające na wartościach nie-integracyjnych
Istnieją pewne przypadki krawędzi, gdy próbujemy użyć polecenia spadku na klawiszu Redis, które zawiera nieciągły typ danych lub ciąg, którego nie można reprezentować jako liczbę całkowitą. Komenda REn rzuca błąd w tych przypadkach, jak pokazano w poniższym przykładzie:
Ustaw Notanintergerval Hello
„Hello” to tekst, którego nie można przekonwertować na podpisaną liczbę całkowitą. Tak więc polecenie obniża błąd, jeśli nazwiemy go w stosunku do tego klucza.
Onn NotanIntergerval
Polecenie spadające na nieistniejących klawiszach
W niektórych przypadkach możesz wywołać polecenie dex na klucz, który nie istnieje w sklepie danych Redis. Tak więc polecenie tworzy określony klawisz i ustawia jego wartość na liczbę całkowitą 0. Jednocześnie wartość jest zmniejszona o jeden.
Zatruć nieistniejącą klawisz
Zgodnie z oczekiwaniami wyjście wynosi -1.
Ogólnie rzecz biorące.
Wniosek
Podsumowując, RENT jest jednym z poleceń, które działają na wartościach numerycznych, które są przechowywane na danym kluczu Redis. Redis nie obsługuje osobnego typu danych liczb całkowitych. Tak więc typ ciągów służy również do przechowywania wartości numerycznych. Zgodnie z badaniem, jeśli wartość ciągu może być reprezentowana jako 64-bitowa liczba całkowitą, polecenie RUN może być użyte do zmniejszenia jego wartości. Co najważniejsze, działa ze stałą złożonością czasu. Również polecenie REn jest powszechnie używane do wdrożenia liczników.