|
|
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.
De eerder geschreven zk-gebaseerde gedistribueerde vergrendeling is als volgt:
Wat je ook moet weten om dit artikel te lezen:
.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
|