Üzleti helyzetekben a tartalom egyidejű működése, például árukészlet, ugyanaz a fájl stb. nem engedélyezett, és a programalkalmazást több szerveren telepítik.
A korábban írt zk-alapú elosztott zár a következő:
Amit szintén tudnia kell ennek a cikknek a elolvasásához:
A .NET Core elosztott zárokat valósít meg Redis alapjánAz elv az, hogy a redis SETNX parancsát hívjuk, ha a kulcs már létezik, a SETNX parancs semmit sem csinál. A parancs 1-et, ha a beállítás sikeres, és 0-ot, ha a beállítás nem működik.
A hiperlink bejelentkezés látható.
Hozz létre egy új .NET Core 3.1 konzolprojektet, adj hozzá egy StackExchange.Redis hivatkozást, és használd a nuget parancsot az alábbiak szerint:
A könyvtár StringSet metódusát hívjuk a StackExchange.Redis forráskódon keresztül, láthatjuk, hogy a StringSet metódus a GetStringSetMessage privát metódusát hívja meg, hogy különböző halmazparancsokat hajtson végre a felsorolási értéken keresztül, amikor a kód a következő:
A SETNX parancsot 2000-szer hajtjuk végre párhuzamos teszthíváson keresztül a programhoz, amely két részben történik, ahol a kulcs gyorsítótár érvényessége 5 másodperc, vagyis a kulcs automatikusan feloldódik 5 másodperc után, vagyis a zár feloldódik.
A kódex a következő:
Ahogy látható, összesen 2 sikeres beillesztés és 1998-as sikertelen próbálkozás pontosan azt várta, amire számítottunk, és a renderelések a következők:
Jelenleg a zár még nem oldódott fel. (Vége)
|