Redis är en icke-blockerande asynkronserver, det finns ingen semantik inbyggd i redis för att blockera på en klientanslutning tills en nyckel är gratis.
Obs:Redis är ett avlägset NoSQL-datalager, därför "distribueras" alla lås du implementerar som involverar redis. ServiceStacks AcquireLock använder redis primitiva SETNX låsning av semantik för att säkerställa att endast en klientanslutning har låset, alla andra klienter/anslutningar förblir blockerade tills låset har frigjorts genom att använda en exponentiell back-off-multiplikator för återförsök för att polla.
För att implementera ett distribuerat lås utan polling måste du skapa en lösning som använder en kombination av SETNX + redis Pub/Sub-stöd för att meddela väntande klienter att låset har frigjorts.