Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 34174|Odgovoriti: 5

[.NET Core] .NET Core implementira porazdeljeno razčlenjevanje principov zaklepanja na osnovi Redis

[Kopiraj povezavo]
Objavljeno na 22. 09. 2020 09:17:22 | | | |
V poslovnih scenarijih sočasne operacije vsebin, kot so zaloga blaga, ista datoteka itd., niso dovoljene, programska aplikacija pa je nameščena na več strežnikih.
[Dejanski boj] ASP.NET Core temelji na Redis distributed lock flash sale
https://www.itsvse.com/thread-9397-1-1.html

Prej napisana razpršena ključavnica na osnovi zk je naslednja:

.net/c# Implementacija porazdeljene ključavnice Zookeeper [Izvorna koda]
https://www.itsvse.com/thread-4651-1-1.html

Kar morate vedeti tudi za branje tega članka:

Volatile vs. Interlocked vs. lock
https://www.itsvse.com/thread-5023-1-1.html

C# Parallel Computation Parallel.For&Parallel.For
https://www.itsvse.com/thread-3671-1-1.html

.NET Core implementira porazdeljene zaklepe na osnovi RedisNačelo je, da se pokliče ukaz SETNX za redis, če ključ že obstaja, ukaz SETNX ne naredi ničesar. Ukaz vrne 1, ko nastavitev uspe, in 0, ko nastavitev ne uspe.

Prijava do hiperpovezave je vidna.

Ustvarite nov .NET Core 3.1 konzolni projekt, dodajte referenco na StackExchange.Redis in uporabite ukaz nuget tako:

Metodo StringSet knjižnice pokličemo prek izvorne kode StackExchange.Redis, kjer vidimo, da bo metoda StringSet klicala zasebno metodo GetStringSetMessage za izvajanje različnih ukazov nabora prek vrednosti enumeracije , koda pa je naslednja:

Ukaz SETNX izvedemo 2000-krat preko vzporednega testnega klica programa, ki se izvede v 2 delih, pri čemer je veljavnost ključa v predpomnilniku 5 sekund, torej se ključ samodejno sprosti po 5 sekundah, torej se zaklep sprosti.

Koda je naslednja:


Kot lahko vidite, sta skupaj 2 uspešna vstavljanja in neuspešni poskusi leta 1998 točno takšni, kot smo pričakovali, upodobitve pa so naslednje:


Trenutno ključavnica še ni bila sproščena.
(Konec)









Prejšnji:Nisem našel rešitve za del poti "\bin\roslyn\csc.exe"
Naslednji:EF Core Series 2 kapsulira OnModelCreating, ustvarja indekse z odsevi in še več
 Najemodajalec| Objavljeno na 26. 09. 2020 15:37:52 |
test123
Objavljeno na 20. 11. 2020 11:18:31 |
Če je pri nameščanju kontejnerjev večnitno okolje in več-instancno okolje, ali je pri tem ravnanju kakšna težava?
 Najemodajalec| Objavljeno na 20. 11. 2020 11:29:44 |
qiuyueming Objavljeno 20. 11. 2020 ob 11:18
Če je pri nameščanju kontejnerjev večnitno okolje in več-instancno okolje, ali je pri tem ravnanju kakšna težava? ...

Večkratno pomeni večnitnost, v izvorni kodi pa večnitno kliče redis, pri čemer le ena nit dobi zaklep
Objavljeno na 22. 03. 2022 14:32:40 |
Podpora, podpora
Objavljeno na 23. 03. 2022 11:15:30 |
Nauči se, to je dobro @
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com