Redis to nieblokujący serwer asynchroniczny, nie ma wbudowanej semantyki do blokowania redis na połączeniu klienta, dopóki nie zostanie klucz jest bezpłatny.
Uwaga:Redis jest zdalnym magazynem danych NoSQL, dlatego każda zaimplementowana blokada związana z redis jest „dystrybuowana” zgodnie z projektem. AcquireLock firmy ServiceStack używa prymitywnego SETNX z redisa semantyka blokowania, aby zapewnić, że tylko jedno połączenie klienta ma blokadę, wszyscy pozostali klienci/połączenia pozostają blokowane do momentu zwolnienia blokady przy użyciu mnożnika wycofywania wykładniczego ponownych prób do odpytywania.
Aby wdrożyć rozproszoną blokadę bez odpytywania, musisz stworzyć rozwiązanie, które wykorzystuje kombinację obsługi Pub/Sub SETNX + redis, aby powiadamiać oczekujących klientów, że blokada została zwolniona.