Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 10734|Atsakyti: 0

[Redis] Pavyzdžiai paaiškina, kas yra "Redis" talpyklos įsiskverbimas, talpyklos lavina ir talpyklos suskirstymas

[Kopijuoti nuorodą]
Paskelbta 2019-11-19 09:55:04 | | | |
"Redis" talpyklos naudojimas labai pagerina programų našumą ir efektyvumą, ypač duomenų užklausoms. Tačiau tuo pačiu metu tai taip pat sukelia tam tikrų problemų. Tarp jų svarbiausia problema yra duomenų nuoseklumas, kuris yra griežtai neišsprendžiamas. Jei reikalingas duomenų nuoseklumas, talpyklos naudoti negalima.

Kitos tipiškos problemos yra talpyklos įsiskverbimas, talpyklos lavina ir talpyklos gedimas. Šiuo metu pramonėje yra ir populiaresnių sprendimų. Šis straipsnis nėra skirtas tobuliau išspręsti šias tris problemas ir nesugriauti populiarių sprendimų pramonėje. Vietoj to, mes parodysime šiuos tris probleminius reiškinius iš faktinės kodo operacijos. To priežastis yra ta, kad sunku turėti labai ryškią koncepciją galvoje vien pažvelgus į akademinį šių problemų paaiškinimą, o realiomis kodo demonstracijomis galite pagilinti savo supratimą ir supratimą apie šias problemas.

Talpyklos įsiskverbimas

Talpyklos įsiskverbimas reiškia duomenų, kurių nėra duomenų bazėje, užklausą. Jei rakto nėra arba rakto galiojimo laikas baigėsi, duomenų bazėje pateikiama užklausa, o užklausti objektai dedami į talpyklą. Jei duomenų bazės užklausos objektas tuščias, jis nesaugomas talpykloje.



Kodo srautas

  • perduoti objekto pirminio rakto ID
  • Gaukite objektą iš talpyklos pagal raktą
  • Jei objektas nėra tuščias, jis grįžta tiesiogiai
  • Jei objektas tuščias, atlikite duomenų bazės užklausą
  • Jei objektas, kurio užklausa pateikta iš duomenų bazės, nėra tuščias, įdėkite jį į talpyklą (nustatykite galiojimo laiką) Įsivaizduokite šią situaciją, kas nutiktų, jei perduotas parametras būtų -1? Šis -1 yra objektas, kurio neturi būti. Duomenų bazė bus užklausiama kiekvieną kartą, o kiekviena užklausa bus tuščia ir nebus kiekvieną kartą saugoma talpykloje. Jei įvyksta kenkėjiška ataka, šis pažeidžiamumas gali būti išnaudotas siekiant daryti spaudimą duomenų bazei ar net ją užvaldyti. Net jei naudojamas UUID, lengva rasti neegzistuojantį raktą ir atakuoti.


Savo darbe naudosiu nulinių reikšmių talpyklos metodą, tai yra 5 veiksmą [kodo procese], jei objektas, kurio užklausa pateikta iš duomenų bazės, yra tuščias, jis taip pat dedamas į talpyklą, tačiau nustatytas talpyklos galiojimo laikas yra trumpas, pavyzdžiui, nustatant jį į 60 sekundžių.




Talpyklos lavina

Talpyklos lavina reiškia talpyklos, nustatytos per tam tikrą laiką, galiojimo pabaigą.

Viena iš lavinos priežasčių, pavyzdžiui, rašant šį straipsnį, netrukus dvyliktą dieną bus nulis, o netrukus kils skubaus pirkimo banga. Tada pirmą valandą ryto šios prekių partijos talpykla baigsis galioti. Šios prekių partijos prieigos užklausa patenka į duomenų bazę, o duomenų bazėje bus periodiniai slėgio pikai.

Kai Xiaobian vykdo elektroninės prekybos projektus, jis paprastai priima skirtingas prekių kategorijas ir talpina skirtingus ciklus. Tos pačios kategorijos prekės, pridėjus atsitiktinį koeficientą. Tokiu būdu talpyklos galiojimo laikas gali būti kiek įmanoma išsklaidytas, o populiarių kategorijų produktų talpyklos laikas yra ilgesnis, o nepopuliarių kategorijų produktų talpyklos laikas yra trumpesnis, o tai taip pat gali sutaupyti talpyklos paslaugos išteklius.




Tiesą sakant, centralizuotas galiojimo laikas nėra labai mirtinas, o kuo lemtingesnė talpyklos lavina yra ta, kad talpyklos serverio mazgas sugenda arba atsijungia. Kadangi natūraliai atsirandanti talpyklos lavina turi būti sukurta per tam tikrą laiką, duomenų bazė gali atlaikyti spaudimą, o šiuo metu duomenų bazė taip pat gali atlaikyti spaudimą. Tai ne kas kita, kaip periodinis spaudimas duomenų bazei. Talpyklos paslaugos mazgo prastova sukelia nenuspėjamą spaudimą duomenų bazės serveriui ir greičiausiai akimirksniu perkraus duomenų bazę.

Talpyklos suskirstymas

Talpyklos suskirstymas reiškia raktą, kuris yra labai karštas, nuolat nešantis didelį sutapimą, didelis sutapimas sutelkia dėmesį į prieigą prie šio taško, kai šis raktas sugenda, nuolatinis didelis sutapimas prasiveržia pro talpyklą ir tiesiogiai prašo duomenų bazės, kaip gręžti skylę barjere.

Kai Xiaobian vykdė elektroninės prekybos projektus, jis padarė šį produktą "hitu".

Tiesą sakant, daugeliu atvejų tokio tipo sprogimą sunku daryti triuškinantį spaudimą duomenų bazės serveriui. Yra nedaug įmonių, kurios pasiekė šį lygį. Todėl pragmatiškas redaktorius anksti pasiruošė pagrindiniams produktams, kad talpyklos galiojimo laikas niekada nesibaigtų. Net jei kai kurie produktai fermentuojasi į hitus, jie gali būti nustatyti kaip niekada nesibaigiantys.

Pagrindinis kelias yra paprastas, o mutex rakto abipusio atmetimo užraktas tikrai nenaudojamas.





Ankstesnis:MySql 8.0 Arba naudokite saugų ryšį, nurodykite serverio RSA...
Kitą:"Docker" konteineris, skirtas prieigai prie išorinių pagrindinio kompiuterio paslaugų
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com