Paskirstytų spynų taikymo scenarijai: Tobulėjant paslaugoms, pavienės programos tampa klasteriais, paskirstytos spynos išsprendžia skirtingų procesų (gijų) veikimą tame pačiame išteklyje vienu metu, o kai kurioms paslaugoms veikti turi prireikti vienos gijos, pavyzdžiui: indėlių sumų pokyčiai, prekių atsargų pokyčiai ir kt.
Peržiūra:
Ankstesniame straipsnyje "[Praktika]ASP.NET branduolys, pagrįstas "Redis Distributed Lock Flash Kill", kai pridėjome užraktą, taip pat įjungėme foninę giją, kad prailgintume užrakto laiką, kad užtikrintume, jog atleidus užraktą kitų gijų užimtas užraktas nebus klaidingai ištrintas.
Išmokę Redis naudoti Lua scenarijus, galite lengvai naudoti scenarijus, kad užbaigtumėte užimtumo užraktus ir atlaisvintumėte užraktus.
Pirmiausia pažvelkime į atvaizdus taip:
Pirmiausia atidarėme 1000 lygiagrečių gijų, kad konkuruotume dėl spynos, ir užraktas baigėsi 5 sekundes.Mes užbaigėme 1000 gijų per 5 sekundes, ir tik 1 siūlas sėkmingai įgijo užraktąPalaukus 6 sekundes, užraktas bus automatiškai atleistas ir pamatysite, kad antroji užduotis sėkmingai gavo užraktą ir iškart atleido užraktą, o paskesnis kodas sėkmingai gavo užraktą.
Lua scenarijus, norint gauti užraktą, yra toks:
Lua scenarijus, skirtas atlaisvinti užraktą, yra toks:
Sąsajos kodas:
Šaltinio kodo atsisiuntimas:Hipersaito prisijungimas matomas.
Modifikuoti "[Praktika] ASP.NET Core remiantis Redis paskirstyta spyna flash pardavimas" yra įgyvendinta naudojant šį straipsnį, ir mūsų svetainė imituoja jį10000 prekių, o tada parašė konsolę, kad imituotų HTTP užklausos laikąIšparduota per 6 sekundes, kaip parodyta toliau pateiktame paveikslėlyje:
Pakeiskite bandymo modeliavimo užklausos kodą:
(Pabaiga)
|