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

Rodinys: 15771|Atsakyti: 0

[Redis] 5 dalykai, kuriuos turite žinoti prieš naudodami Redis

[Kopijuoti nuorodą]
Paskelbta 2015-12-29 12:22:28 | | |
Programų kūrimas naudojant "Redis" yra malonus procesas, tačiau, kaip ir bet kuri technologija, kuriant "Redis" pagrįstas programas reikia atsiminti keletą dalykų. Galbūt anksčiau buvote susipažinę su visa reliacinių duomenų bazių kūrimo rutina, o "Redis" pagrįstas programų kūrimas turi daug panašumų, tačiau turite nepamiršti šių dviejų dalykų - "Redis" yra atminties duomenų bazė ir ji yra vienos gijos. Todėl naudodamiesi "Redis" turite atkreipti dėmesį į šiuos dalykus:
1. Valdykite visus "Redis" saugomus klavišus
Pagrindinė duomenų bazės funkcija yra saugoti duomenis, tačiau normalu, kad kūrėjai ignoruoja kai kuriuos duomenų bazėje saugomus duomenis dėl programos reikalavimų ar duomenų naudojimo metodų pokyčių, tas pats pasakytina ir apie Redis. Galite nepastebėti tam tikrų raktų, kurių galiojimo laikas baigiasi, arba galite pamiršti duomenis, nes jūsų programos modulis yra pasenęs.
Bet kuriuo atveju "Redis" saugo kai kuriuos nebenaudojamus duomenis ir be jokios priežasties užima šiek tiek vietos. Dėl silpnos struktūros "Redis" duomenų modelio sunku išsiaiškinti, kas saugoma centralizuotai, nebent raktams naudojate labai brandžią nomenklatūrą. Tinkamo pavadinimų suteikimo metodo naudojimas supaprastins duomenų bazės valdymą, o kai sukuriate raktų vardų sritį naudodami programą ar paslaugą (paprastai naudodami dvitaškius raktų pavadinimams padalinti), galite lengvai identifikuoti duomenis juos perkeldami, konvertuodami ar ištrindami.
Kitas dažnas "Redis" naudojimo atvejis yra antroji karštų duomenų saugykla, kurioje didžioji dalis duomenų saugoma kitose duomenų bazėse, pvz., "PostgreSQL" ar "MongoDB". Tokiais naudojimo atvejais kūrėjai dažnai pamiršta ištrinti atitinkamus duomenis Redis, kai duomenys pašalinami iš pagrindinės saugyklos. Tokiu atveju paprastai reikalingas kaskadinis ištrynimas, tokiu atveju tai galima pasiekti išsaugojus visus konkretaus duomenų elemento identifikatorius "Redis" konfigūracijoje, kad būtų užtikrinta, kad ištrynus duomenis pirminėje duomenų bazėje, valytojas būtų iškviestas ištrinti visas atitinkamas kopijas ir informaciją.
2. Kontroliuokite visų klavišų pavadinimų ilgį
Kaip minėjome aukščiau, mes naudojome atitinkamas pavadinimų konvencijas ir pridėjome priešdėlius, kad nustatytume, kur eina duomenys, todėl atrodo, kad tai prieštarauja. Tačiau nepamirškite, kad "Redis" yra atminties duomenų bazė, o kuo trumpesni klavišai, tuo mažiau vietos jums reikia. Natūralu, kad kai duomenų bazėje yra milijonai ar milijardai raktų, rakto pavadinimo ilgis turės didelę įtaką.
Pavyzdžiui, 32 bitų "Redis" serveryje, jei išsaugosite milijoną raktų, kurių ilgis yra 32 simboliai, jis užims apie 96 MB vietos, kai naudosite 6 simbolių rakto pavadinimą, tačiau jei naudosite 12 simbolių rakto pavadinimą, vietos sunaudojimas padidės iki maždaug 111 MB. Turint daugiau raktų, papildomos 15 % pridėtinės išlaidos turės didelę įtaką.
3. Naudokite tinkamą duomenų struktūrą
Nesvarbu, ar tai būtų atminties naudojimas, ar našumas, kartais duomenų struktūros gali turėti didelę įtaką, štai keletas geriausių praktikų, į kurias reikia atsižvelgti:
Užuot saugoję duomenis kaip tūkstančius (ar milijonus) atskirų eilučių, apsvarstykite galimybę naudoti maišos duomenų struktūras susijusiems duomenims grupuoti. Maišos lentelės yra labai efektyvios ir gali sumažinti atminties naudojimą; Tuo pačiu metu maiša taip pat yra naudingesnė detalių abstrakcijai ir kodo skaitomumui.
Jei reikia, naudokite list, o ne set. Jei nereikia naudoti nustatytos funkcijos, sąrašas gali užtikrinti didesnį greitį nei nustatytas naudojant mažiau atminties.
Rūšiuoti rinkiniai yra brangiausios duomenų struktūros tiek atminties suvartojimo, tiek pagrindinių operacijų sudėtingumo požiūriu. Jei jums tiesiog reikia būdo užklausti įrašus ir jums nerūpi tokių ypatybių rūšiavimas, labai rekomenduojama naudoti maišos lenteles.
Dažnai nepastebima "Redis" funkcija yra bitmap arba bitų rinkiniai (po V2.2). Bitų rinkiniai leidžia atlikti kelias bitų lygio operacijas su Redis reikšmėmis, pvz., lengvą analizę.
4. Nenaudokite rakto, kai naudojate SCAN
Nuo Redis v2.8 jau yra SCAN komanda, kuri leidžia nuskaityti klavišus iš klavišų erdvės naudojant žymeklį. Palyginti su komanda KEYS, nors SCAN negali grąžinti visų atitinkančių rezultatų vienu metu, išvengiama didelės sistemos blokavimo rizikos, todėl kai kurias operacijas galima atlikti pagrindiniame mazge.
Svarbu pažymėti, kad komanda SCAN yra žymekliu pagrįstas iteratorius. Kiekvieną kartą iškviečiant SCAN komandą, vartotojui bus grąžintas naujas žymeklis, o vartotojas turės naudoti šį naują žymeklį kaip SCAN komandos žymeklio parametrą kitoje iteracijoje, kad galėtų tęsti ankstesnį iteracijos procesą. Tuo pačiu metu, naudodami SCAN, vartotojai taip pat gali koreguoti komandas naudodami keyname režimą ir skaičiavimo parinktis.
Su SCAN susijusios komandos taip pat apima SSCAN komandas, HSCAN komandas ir ZSCAN komandas, kurios naudojamos atitinkamai kolekcijoms, maišos raktams ir tęsiniams.
5. Naudokite serverio "Lua" scenarijus
Naudojant Redis, Lua scenarijų palaikymas neabejotinai suteikia kūrėjams labai draugišką kūrimo aplinką, taip labai išlaisvindamas vartotojų kūrybiškumą. Tinkamai naudojami Lua scenarijai gali žymiai pagerinti našumą ir išteklių naudojimą. Užuot perdavę duomenis į procesorių, scenarijai leidžia vykdyti arčiausiai duomenų esančią logiką, sumažinant tinklo delsą ir perteklinį duomenų perdavimą.
"Redis" labai klasikinis "Lua" naudojimo atvejis yra duomenų filtravimas arba duomenų kaupimas į programą. Įtraukę apdorojimo darbo eigą į scenarijų, galite tiesiog jį iškviesti, kad gautumėte mažesnį atsakymą naudodami kelis išteklius per trumpesnį laiką.
Profesionalų patarimas:Lua yra puikus, tačiau jis taip pat turi tam tikrų problemų, tokių kaip sunkumai pranešant apie klaidas ir jas tvarkant. Protingas būdas yra naudoti "Redis" "Pub / Sub" funkciją ir leisti scenarijui siųsti žurnalo pranešimus per tam skirtą kanalą. Tada sukurkite prenumeratoriaus procesą ir atitinkamai jį apdorokite.





Ankstesnis:Redis . .NET atvirojo kodo komponentas Beetle.Redis
Kitą:Diegimo paketas: Microsoft.Bcl 1.1.10 paketui reikalinga NuGet kliento 2.8.1 arba naujesnė versija...
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