sql >> Databáze >  >> NoSQL >> Redis

Blokovat přístup ke klíči Redis (ServiceStack)

Redis je neblokující asynchronní server, není zde zabudovaná žádná sémantika, která by redis blokovala na klientském připojení, dokud není klíč je zdarma.

Poznámka:Redis je vzdálené úložiště dat NoSQL, takže jakýkoli zámek, který implementujete, je „distribuován“ podle návrhu. AcquireLock služby ServiceStack používá primitivní SETNX společnosti redis uzamčení sémantiky, aby bylo zajištěno, že zámek bude mít pouze 1 klientské připojení, všichni ostatní klienti/připojení zůstanou blokováni, dokud nebude zámek uvolněn pomocí exponenciálního opakovacího back-off multiplikátoru k dotazování.

Abyste mohli implementovat distribuovaný zámek bez dotazování, museli byste vytvořit řešení, které využívá kombinaci SETNX + podpory Pub/Sub společnosti Redis k upozornění čekajících klientů, že zámek byl uvolněn.



  1. Jak Spark, Python a MongoDB spolupracovat

  2. Najít řetězec v řetězci v SQL

  3. MongoDB dotaz $in s regulárním polem prvku

  4. Jaký je v Mongo rozdíl mezi shardováním a replikací?