Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 34174|Antwoord: 5

[.NET Core] .NET Core implementeert het parsen van het distributed lock-principe op basis van Redis

[Link kopiëren]
Geplaatst op 22-09-2020 09:17:22 | | | |
In zakelijke scenario's zijn gelijktijdige bewerkingen van content, zoals commodity inventory, hetzelfde bestand, enz., niet toegestaan, en wordt de programmaapplicatie op meerdere servers geïmplementeerd.
[Echte gevechten] ASP.NET Core is gebaseerd op Redis distributed lock flash sale
https://www.itsvse.com/thread-9397-1-1.html

De eerder geschreven zk-gebaseerde gedistribueerde vergrendeling is als volgt:

.net/c# Zookeeper Distributed Lock-implementatie [Broncode]
https://www.itsvse.com/thread-4651-1-1.html

Wat je ook moet weten om dit artikel te lezen:

Vluchtig versus Interlocked versus slot
https://www.itsvse.com/thread-5023-1-1.html

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

.NET Core implementeert gedistribueerde locks gebaseerd op RedisHet principe is om het SETNX-commando redis aan te roepen, als de sleutel al bestaat, doet het SETNX-commando niets. Het commando geeft 1 terug wanneer de instelling slaagt en 0 wanneer de instelling faalt.

De hyperlink-login is zichtbaar.

Maak een nieuw .NET Core 3.1 consoleproject aan, voeg een StackExchange.Redis-referentie toe en gebruik het nuget-commando als volgt:

We roepen de StringSet-methode van de bibliotheek aan, via de broncode van StackExchange.Redis zien we dat de StringSet-methode de privé-methode GetStringSetMessage aanroept om verschillende set-commando's uit te voeren via de enumeratiewaarde van wanneer; de code is als volgt:

We voeren het SETNX-commando 2000 keer uit via een parallelle testaanroep naar het programma, die in 2 afleveringen wordt uitgevoerd, waarbij de cachegeldigheid van de sleutel 5 seconden bedraagt, dat wil zeggen, de sleutel wordt automatisch na 5 seconden vrijgegeven, dat wil zeggen, het slot wordt vrijgegeven.

De code is als volgt:


Zoals je kunt zien, zijn in totaal 2 succesvolle inserties en mislukte pogingen in 1998 precies wat we verwachtten, en de renderings zijn als volgt:


Op dit moment is het slot nog niet vrijgegeven.
(Einde)









Vorig:Ik heb geen oplossing gevonden voor een deel van het pad "\bin\roslyn\csc.exe"
Volgend:EF Core Series 2 bevat OnModelCreating, maakt indexen met behulp van reflecties, en meer
 Huisbaas| Geplaatst op 26-09-2020 15:37:52 |
test123
Geplaatst op 20-11-2020 11:18:31 |
Als er een multi-threaded omgeving en een multi-instance omgeving is bij het deployen van containers, is er dan een probleem met deze afhandeling?
 Huisbaas| Geplaatst op 20-11-2020 11:29:44 |
qiuyueming Geplaatst op 20-11-2020 11:18
Als er een multi-threaded omgeving en een multi-instance omgeving is bij het deployen van containers, is er dan een probleem met deze afhandeling? ...

Multi-instance betekent multithreading, en in de broncode multithreaded calls redis, en slechts één thread krijgt een lock
Geplaatst op 22-03-2022 14:32:40 |
Steun, steun
Geplaatst op 23-03-2022 11:15:30 |
Leer, dit is goed @
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com