sql >> Database teknologi >  >> NoSQL >> Redis

Bloker adgang til Redis-nøgle (ServiceStack)

Redis er en ikke-blokerende asynkronserver, der er ingen semantik indbygget i Redis for at blokere på en klientforbindelse indtil en nøgle er gratis.

Bemærk:Redis er et eksternt NoSQL-datalager, derfor er enhver lås, du implementerer, der involverer redis, 'distribueret' efter design. ServiceStack's AcquireLock bruger redis' primitive SETNX låse semantik for at sikre, at kun 1 klientforbindelse har låsen. Alle andre klienter/forbindelser forbliver blokerende, indtil låsen er blevet frigjort ved at bruge en eksponentiel genforsøgs-back-off multiplikator til at polle.

For at implementere en distribueret lås uden polling skal du oprette en løsning, der bruger en kombination af SETNX + redis's Pub/Sub-understøttelse til at underrette ventende klienter om, at låsen er blevet frigivet.



  1. Jeg modtager duplikerede meddelelser i min klyngede node.js/socket.io/redis pub/sub-applikation

  2. At få alle python-rom-objekter på en liste

  3. Hvordan udfører man en værdibaseret Order By i MongoDB?

  4. Future of Hadoop – Løn og jobforudsigelser i Big Data-analyse