V obchodných scenároch nie sú povolené súčasné operácie s obsahom, ako je komoditný inventár, ten istý súbor a pod., a programová aplikácia je nasadená na viacerých serveroch.
Predtým napísaný zk-based distributed lock je nasledovný:
Čo tiež potrebujete vedieť, aby ste si prečítali tento článok:
.NET Core implementuje distribuované zámky založené na RedisPrincíp spočíva v zavolaní príkazu SETNX v redise, ak kľúč už existuje, príkaz SETNX nič nerobí. Príkaz vráti 1, keď nastavenie uspeje, a 0, keď nastavenie zlyhá.
Prihlásenie na hypertextový odkaz je viditeľné.
Vytvorte nový .NET Core 3.1 konzolový projekt, pridajte referenciu StackExchange.Redis a použite príkaz nuget nasledovne:
Metódu StringSet knižnice voláme prostredníctvom zdrojového kódu StackExchange.Redis, vidíme, že metóda StringSet volá súkromnú metódu GetStringSetMessage na vykonávanie rôznych príkazov množiny pomocou enumeračnej hodnoty , kód je nasledovný:
Príkaz SETNX vykonáme 2000-krát cez paralelné testovacie volanie programu, ktoré sa vykonáva v 2 častiach, pričom platnosť kľúča v cache je 5 sekúnd, teda kľúč sa automaticky uvoľní po 5 sekundách, teda zámok sa uvoľní.
Kód je nasledovný:
Ako vidíte, celkovo 2 úspešné vklady a neúspešné pokusy v roku 1998 sú presne také, aké sme očakávali, a rendery sú nasledovné:
V súčasnosti zámok ešte nebol uvoľnený. (Koniec)
|