Transakcja bazy danych odnosi się do pojedynczej jednostki pracy składającej się z pojedynczych do wielu zapytań. W przypadkach operację można zaklasyfikować jako transakcję tylko wtedy, gdy występują jakieś zmiany w bazie danych.
Nie będziemy się tym martwić, ale nauczymy się, jak korzystać z polecenia zegarek wraz z transakcjami Redis dla tego.
Jakie są transakcje?
W Redis transakcje składają się z czterech głównych poleceń: obserwuj, wykonaj, odrzucaj i multi.
Korzystając z powyższych poleceń, możesz otworzyć blok i dodać wiele poleceń jednocześnie. Po zakończeniu uruchamiasz polecenia jako jedna jednostka.
Aby transakcja odniosła sukces, Redis zapewnia:
Redis Utwórz transakcję
Tworzysz jednostkę transakcyjną za pomocą polecenia Multi. Multi Command powróci OK. Możesz iść naprzód i dodać wszystkie polecenia transakcyjne jeden po drugim.
Zamiast wykonywać polecenia, Redis będzie je w kolejce do wstawiania, dopóki ich nie zadzwonisz.
Przykładem jest to, jak pokazano poniżej:
127.0.0.1: 6379> Multi
OK
Redis Execute jednostka transakcyjna
Jak wspomniano, Redis będzie w kolejce polecenia w jednostce transakcyjnej, dopóki ich ręcznie je wykonasz.
Możemy to zrobić za pomocą polecenia exec. To mówi Redisowi, aby uruchomił wszystkie polecenia w kolejce w kolejności wstawiania.
Przykładem użycia jest jak pokazano poniżej:
127.0.0.1: 6379> Ustaw Newkey „100”
Kolejka
127.0.0.1: 6379> Inclue newkey
Kolejka
127.0.0.1: 6379> Zdobądź Newkey
Kolejka
127.0.0.1: 6379>
Zauważysz, że każde wykonane polecenie jest w kolejce. Kolejne polecenie to polecenie, które ma uruchomić po wywołaniu Exec.
Aby go uruchomić, zadzwoń do Exec jako:
127.0.0.1: 6379> Exec
1) OK
2) (liczba całkowita) 101
3) „101”
Powinno to wykonać wszystkie polecenia i zwraca wynikowe wartości.
Redis Usuń kolejkę poleceń
Załóżmy, że chcesz wyczyścić kolejkę poleceń i wypłukać wszystkie zaplanowane polecenia? W tym celu możesz użyć polecenia odrzutu, jak pokazano:
127.0.0.1: 6379> Multi
OK
127.0.0.1: 6379> Ustaw Newkey „100”
Kolejka
127.0.0.1: 6379> Inclue newkey
Kolejka
127.0.0.1: 6379> Zdobądź Newkey
Kolejka
127.0.0.1: 6379> Odrzuć
OK
Po uruchomieniu polecenia odrzucania Redis powróci OK i zamknie jednostkę transakcyjną.
Polecenie Redis Watch
Polecenie Watch w Redis umożliwia wdrożenie funkcji Check-and-Set. Polecenia zegarka akceptują klawisze Redis jako parametry i monitorują je.
Jeśli którykolwiek z określonych kluczy zostanie zmieniony przed wywołaniem polecenia EXEC, Redis automatycznie kończy transakcję i zwraca zerową odpowiedź.
Weź poniższy przykład:
var = zdobądź mykey
var = var + 1
Ustaw mykey $ var
W powyższym przykładzie mamy operację, która zwiększa wartość klucza o 1. Oczywiście nie jest to problem, jeśli tylko jeden klient wykonuje wspomnianą operację.
Jeśli jednak wielu klientów próbuje jednocześnie wykonać powyższą operację, występuje warunek wyścigu i zwraca nieprawidłową wartość.
Możemy to rozwiązać, oglądając klucz, jak pokazano:
Obejrzyj Mykey
var = zdobądź mykey
var = var + 1
WIELO
Ustaw mykey $ var
Exec
Tutaj, jeśli klient działa, a wartość klucza jest zmieniana przed wykonaniem transakcji, wykonanie się nie powiedzie.
Aby usunąć wszystkie oglądane klucze, użyj polecenia Unatch.
Wniosek
W tym artykule omówiono za pomocą i pracy z transakcjami w bazie danych Redis. Sprawdź dokumentację, aby odkryć więcej.
Dziękuje za przeczytanie!!