Iepriekš rakstītā zk bāzētā izkliedētā slēdzene ir šāda:
Redis īsteno izkliedētās bloķēšanas principu:
Izkliedēto slēdzeņu ieviešanas princips Redis ir izsaukt SETNX komandu redis, un, ja atslēga jau pastāv, komanda SETNX neko nedara. Komanda atgriež 1, kad iestatījums ir veiksmīgs, un 0, ja iestatījums neizdodas.
Pirmkārt, mūsu vietne simulē 10 000 produktus un pēc tam raksta konsoli, kas simulē HTTP pieprasījumu, kas aizņem 40 sekundes, lai pabeigtu pirkumu, renderēšana ir šāda:
Izveidojiet jaunu vietni ASP.NET Core 3.1, un redis bloķēšanas pakete ir šāda:
Es redzēju, ka daudzas atbrīvošanas slēdzenes internetā ir rakstītas šādi:
Tomēr šķiet, ka var būt problēma, vienlaicīguma gadījumā ir iespējams atgriezties taisnība sprieduma laikā, tā patiešām ir pati pievienota slēdzene, bet, kad slēdzene tiek izdzēsta, tā var būtĀrkārtējos gadījumos, slēdzene ir iegūta ar citu pavedienu, ja kāda cita slēdzene tiek izdzēsta.
Tāpēc, iegūstot slēdzeni, jums jāatver pavediens, lai pagarinātu slēdzenes derīguma termiņu.
WeatherForecastController interfeiss ir šāds:
API vietni var sākt, izmantojot komandrindu, kuru var viegli restartēt, šādi:
Izveidojiet jaunu .NET Core maketa HTTP pieprasījumu ātrai iegādei, kods ir šāds:
Ja kaut kas nav kārtībā, paldies, ka to izlabojat.
Visbeidzot, pievienojiet avota kodu:
Tūristi, ja vēlaties redzēt šīs ziņas slēpto saturu, lūdzu Atbildi
|