sql >> Base de Datos >  >> NoSQL >> Redis

Bloquear el acceso a la clave Redis (ServiceStack)

Redis es un servidor asíncrono sin bloqueo, no hay una semántica integrada en redis para bloquear en una conexión de cliente hasta una clave es gratis.

Nota:Redis es un almacén de datos NoSQL remoto, por lo tanto, cualquier bloqueo que implemente relacionado con redis se 'distribuye' por diseño. AcquireLock de ServiceStack usa el primitivo SETNX de redis semántica de bloqueo para garantizar que solo 1 conexión de cliente tenga el bloqueo, todos los demás clientes/conexiones permanecerán bloqueados hasta que se libere el bloqueo mediante el uso de un multiplicador de retroceso de reintento exponencial para sondear.

Para implementar un bloqueo distribuido sin sondeo, debe crear una solución que use una combinación de compatibilidad con Pub/Sub de SETNX + redis para notificar a los clientes en espera que el bloqueo se ha liberado.