Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 15771|Odgovoriti: 0

[Redis] 5 stvari, ki jih morate vedeti, preden uporabite Redis

[Kopiraj povezavo]
Objavljeno na 29. 12. 2015 12:22:28 | | |
Razvijanje aplikacij z Redis je prijeten proces, vendar je, kot pri vsaki tehnologiji, pri načrtovanju aplikacij, ki temeljijo na Redisu, upoštevati nekaj stvari. Morda ste že seznanjeni s celotno rutino relacijskega razvoja baz podatkov, razvoj aplikacij na osnovi Redisa pa ima veliko podobnosti, vendar morate upoštevati naslednji dve stvari – Redis je podatkovna baza v pomnilniku in je enonitna. Zato morate pri uporabi Redisa paziti na naslednje točke:
1. Nadzorovati vse ključe, shranjene v Redisu
Glavna funkcija podatkovne baze je shranjevanje podatkov, vendar je običajno, da razvijalci nekatere podatke v bazi ignorirajo zaradi sprememb v aplikacijskih zahtevah ali metodah uporabe podatkov, enako velja za Redis. Lahko spregledate določene ključe, ki potekajo, ali pa pozabite podatke, ker je modul vaše aplikacije zastarel.
V obeh primerih Redis shrani podatke, ki jih ne uporabljajo več, in zavzamejo nekaj prostora brez razloga. Redisov šibko strukturiran vzorec podatkov otežuje ugotavljanje, kaj je shranjeno centralno, razen če uporabite zelo zrelo poimenovanje za ključe. Uporaba pravilnega načina poimenovanja bo poenostavila upravljanje vaše baze podatkov, in ko ustvarite imenski prostor za ključe preko aplikacije ali storitve (običajno z dvopičjem za delitev imen ključev), lahko podatke enostavno prepoznate med migracijo, pretvorbo ali brisanjem.
Drug pogost primer uporabe za Redis je kot druga podatkovna shramba za vroče podatkovne elemente, kjer je večina podatkov shranjena v drugih bazah podatkov, kot sta PostgreSQL ali MongoDB. V teh primerih uporabe razvijalci pogosto pozabijo izbrisati ustrezne podatke v Redisu, ko so podatki odstranjeni iz primarnega pomnilnika. V tem primeru je običajno potrebno kaskadno brisanje, kar je mogoče doseči tako, da shranimo vse identifikatorje za določen podatkovni element v konfiguraciji Redis, da se zagotovi, da se po izbrisu podatkov v primarni bazi pokliče čistilec, ki izbriše vse relevantne kopije in informacije.
2. Nadzorovati dolžino vseh imen ključev
Kot smo že omenili, smo uporabili ustrezne konvencije poimenovanja in dodali predpone za identifikacijo, kam podatki gredo, zato se zdi, da to gre proti temu. Vendar ne pozabite, da je Redis podatkovna baza v pomnilniku, in krajši kot so ključi, manj prostora potrebujete. Seveda, ko je v bazi milijonov ali milijard ključev, ima dolžina imena ključa velik vpliv.
Na primer, na 32-bitnem Redis strežniku, če shranite milijon ključev z dolžino 32 znakov, bo to porabilo približno 96 MB prostora pri uporabi 6-znakovnega imena ključa, če pa uporabite 12-znakovno ime ključa, se bo poraba prostora povečala na približno 111 MB. Z več ključi bo dodatnih 15 % režijskih stroškov pomembno vplivalo.
3. Uporabite pravo podatkovno strukturo
Ne glede na to, ali gre za porabo pomnilnika ali zmogljivost, lahko včasih podatkovne strukture močno vplivajo, tukaj je nekaj najboljših praks, na katere se lahko sklicujete:
Namesto shranjevanja podatkov kot tisočev (ali milijonov) ločenih nizov razmislite o uporabi zgoščenih podatkovnih struktur za združevanje povezanih podatkov. Zgoščevalne tabele so zelo učinkovite in lahko zmanjšajo porabo pomnilnika; Hkrati je zgoščevanje bolj koristno za abstrakcijo podrobnosti in berljivost kode.
Kadar je primerno, uporabite seznam namesto set. Če ne potrebujete funkcije nastavitev, lahko List zagotovi hitrejše hitrosti kot nastavite, hkrati pa porabi manj pomnilnika.
Sortirane množice so najdražje podatkovne strukture, tako glede porabe pomnilnika kot tudi zaradi kompleksnosti osnovnih operacij. Če potrebujete le način za poizvedbo po zapisih in vam ni mar za urejanje takšnih lastnosti, je zelo priporočljivo uporabljati zgoščevalne tabele.
Pogosto spregledana funkcija v Redisu so bitne mape ali bitni nabori (po V2.2). Bitni nabori omogočajo izvajanje več bitnih operacij na vrednostih Redis, kot je nekaj lahke analize.
4. Ne uporabljajte ključa pri uporabi SCAN
Od Redis v2.8 je ukaz SCAN že na voljo, ki omogoča pridobivanje ključev iz prostora ključev s pomočjo kazaleca. V primerjavi z ukazom KEYS, čeprav SCAN ne more hkrati vrniti vseh ujemajočih se rezultatov, se izogne visokemu tveganju blokade sistema, tako da je mogoče nekatere operacije izvesti na glavnem vozlišču.
Pomembno je poudariti, da je ukaz SCAN iterator, ki temelji na kazalcu. Vsakič, ko je ukaz SCAN poklican, se uporabniku vrne nov kazalec, uporabnik pa mora ta novi kazalec uporabiti kot parameter ukaza SCAN v naslednji iteraciji, da lahko nadaljuje prejšnji postopek iteracije. Hkrati lahko uporabniki s SCAN-om prilagajajo ukaze tudi z načinom imena in številom ključev.
Ukazi, povezani s SCAN, vključujejo tudi ukaze SSCAN, HSCAN in ZSCAN, ki se uporabljajo za zbirke, zgoščevalne ključe in nadaljevanja.
5. Uporaba strežniških Lua skript
Pri uporabi Redisa podpora Lua skript razvijalcem nedvomno zagotavlja zelo prijazno razvojno okolje, kar močno osvobaja ustvarjalnost uporabnikov. Ob pravilni uporabi lahko Lua skripte prinesejo pomembne izboljšave zmogljivosti in porabe virov. Namesto da bi podatke posredovali procesorju, skripte omogočajo izvajanje logike, ki je najbližje podatkom, kar zmanjšuje omrežno zakasnitev in odvečno prenašanje podatkov.
V Redisu je zelo klasičen primer uporabe Lua filtriranje ali združevanje podatkov v aplikacijo. Z zajemanjem procesnega toka v skripto ga lahko preprosto pokličete in dobite manjši odgovor z malo viri v krajšem času.
Nasvet:Lua je odličen, a ima tudi nekaj težav, kot so težave pri prijavljanju in reševanju hroščev. Pameten pristop je uporaba Redisove funkcije Pub/Sub in omogočanje, da skripta pošilja sporočila dnevnika preko namenskega kanala. Nato ustvarite naročniški proces in ga ustrezno obdelajte.





Prejšnji:Redis. .NET open-source komponenta Beetle.Redis
Naslednji:Install-Package: Microsoft.Bcl 1.1.10 paket zahteva NuGet odjemalca verzije 2.8.1 ali novejše...
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com