Redis
 sql >> Base de données >  >> NoSQL >> Redis

Bloquer l'accès à la clé Redis (ServiceStack)

Redis est un serveur asynchrone non bloquant, il n'y a pas de sémantique intégrée à redis pour bloquer sur une connexion client jusqu'à ce qu'une clé est gratuit.

Remarque :Redis est un magasin de données NoSQL distant. Par conséquent, tout verrou que vous implémentez impliquant Redis est « distribué » par conception. AcquireLock de ServiceStack utilise la primitive SETNX de Redis sémantique de verrouillage pour s'assurer qu'une seule connexion client a le verrou, tous les autres clients/connexions restent bloquants jusqu'à ce que le verrou soit libéré en utilisant un multiplicateur exponentiel d'attente pour interroger.

Afin de mettre en œuvre un verrou distribué sans interrogation, vous devez créer une solution qui utilise une combinaison de la prise en charge Pub/Sub de SETNX + redis pour informer les clients en attente que le verrou a été libéré.