Verslo scenarijuose vienu metu neleidžiamos turinio operacijos, pvz., prekių atsargos, tas pats failas ir kt., o programos programa diegiama keliuose serveriuose.
Anksčiau parašytas zk pagrįstas paskirstytas užraktas yra toks:
Ką taip pat reikia žinoti norint perskaityti šį straipsnį:
.NET Core įdiegia paskirstytus užraktus, pagrįstus RedisPrincipas yra iškviesti SETNX komandą redis, jei raktas jau yra, komanda SETNX nieko nedaro. Komanda grąžina 1, kai nustatymas sėkmingas, ir 0, kai nustatymas nepavyksta.
Hipersaito prisijungimas matomas.
Sukurkite naują .NET Core 3.1 konsolės projektą, pridėkite StackExchange.Redis nuorodą ir naudokite komandą nuget taip:
Mes iškviečiame bibliotekos StringSet metodą, naudodami StackExchange.Redis šaltinio kodą, matome, kad StringSet metodas iškvies privatų GetStringSetMessage metodą, kad vykdytų skirtingas rinkinio komandas per išvardijimo reikšmę, kai kodas yra toks:
Mes vykdome SETNX komandą 2000 kartų per lygiagretų bandomąjį iškvietimą į programą, kuri vykdoma 2 dalimis, kuriose rakto talpyklos galiojimo laikas yra 5 sekundės, tai yra, raktas bus automatiškai atleistas po 5 sekundžių, tai yra, užraktas bus atleistas.
Kodas yra toks:
Kaip matote, iš viso 2 sėkmingi įterpimai ir 1998 m. nesėkmingi bandymai yra būtent tai, ko tikėjomės, o atvaizdai yra tokie:
Šiuo metu užraktas dar nebuvo atleistas. (Pabaiga)
|