Redis is een niet-blokkerende async-server, er is geen semantiek ingebouwd om redis te blokkeren op een clientverbinding tot een sleutel is gratis.
Opmerking:Redis is een externe NoSQL-gegevensopslag, daarom wordt elk slot dat u implementeert met redis 'gedistribueerd' door het ontwerp. AcquireLock van ServiceStack gebruikt redis' primitieve SETNX vergrendelingssemantiek om ervoor te zorgen dat slechts 1 clientverbinding het slot heeft, alle andere clients/verbindingen blijven geblokkeerd totdat het slot is vrijgegeven door een exponentiële back-off-multiplier voor opnieuw proberen te gebruiken om te pollen.
Om een gedistribueerde vergrendeling te implementeren zonder polling, moet u een oplossing maken die een combinatie van SETNX + redis' Pub/Sub-ondersteuning gebruikt om wachtende klanten te informeren dat de vergrendeling is vrijgegeven.