Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 15771|Vastaus: 0

[Redis] 5 asiaa, jotka sinun tulee tietää ennen Redisin käyttöä

[Kopioi linkki]
Julkaistu 29.12.2015 12.22.28 | | |
Sovellusten kehittäminen Redisilla on miellyttävä prosessi, mutta kuten minkä tahansa teknologian kohdalla, on muutama asia, jotka on pidettävä mielessä suunnitellessasi Redis-pohjaisia sovelluksia. Olet ehkä tuntenut koko relaatiotietokantakehityksen rutiinin aiemmin, ja Redis-pohjaisessa sovelluskehityksessä on paljon yhtäläisyyksiä, mutta sinun täytyy pitää mielessä seuraavat kaksi asiaa – Redis on muistissa oleva tietokanta ja se on yksisäikeinen. Siksi Redisiä käyttäessä sinun tulee kiinnittää huomiota seuraaviin seikkoihin:
1. Hallitse kaikkia Redisiin tallennettuja avaimia
Tietokannan päätehtävä on tallentaa dataa, mutta on tavallista, että kehittäjät jättävät osan tietokantaan tallennetusta datasta huomiotta sovellusvaatimusten tai datankäyttötapojen muutosten vuoksi, ja sama pätee Redisissä. Saatat unohtaa tiettyjä vanhentuneita avaimia tai unohtaa tiedot, koska sovelluksesi moduuli on vanhentunut.
Kummassakin tapauksessa Redis tallentaa joitakin tietoja, joita ei enää käytetä, ja vie tilaa turhaan. Redisin heikosti jäsennelty datamalli tekee vaikeaksi selvittää, mitä keskitetysti tallennetaan, ellei käytä hyvin kypsää avainnimikkeistettä. Oikean nimeämismenetelmän käyttäminen yksinkertaistaa tietokannan hallintaa, ja kun luot nimiavaruuden avaimille sovelluksesi tai palvelun kautta (yleensä käyttämällä kaksoispisteitä avainnimien jakamiseen), voit helposti tunnistaa datan siirtäessäsi, muuntaessasi tai poistaessasi sitä.
Toinen yleinen käyttötapaus Redisille on toisena tietovarastona kuumille tietokohteille, jossa suurin osa datasta tallennetaan muihin tietokantoihin, kuten PostgreSQL:ään tai MongoDB:hen. Näissä käyttötapauksissa kehittäjät unohtavat usein poistaa vastaavat tiedot Redisistä, kun data poistetaan ensisijaisesta tallennustilasta. Tässä tapauksessa kaskadipoisto vaaditaan yleensä, jolloin se onnistuu tallentamalla kaikki tunnisteet tietylle tietokohteelle Redis-konfiguraatiossa, jotta varmistetaan, että kun data on poistettu ensisijaisesta tietokannasta, puhdistusaine kutsutaan poistamaan kaikki olennaiset kopiot ja tiedot.
2. Hallitse kaikkien avainnimien pituutta
Kuten yllä mainittiin, käytimme sopivia nimikäytäntöjä ja lisäsimme etuliitteitä määrittääksemme, mihin data on menossa, joten tämä vaikuttaa olevan ristiriidassa tämän kanssa. Älä kuitenkaan unohda, että Redis on muistissa toimiva tietokanta, ja mitä lyhyemmät avaimet, sitä vähemmän tilaa tarvitset. Luonnollisesti, kun tietokannassa on miljoonia tai miljardeja avaimia, avaimen nimen pituudella on suuri vaikutus.
Esimerkiksi 32-bittisellä Redis-palvelimella, jos tallennat miljoona avainta 32 merkin pituisella, se vie noin 96MB tilaa kuuden merkin avainnimellä, mutta jos käytät 12-merkkistä avainnimeä, tilankulutus kasvaa noin 111MB:iin. Kun avaimia on enemmän, lisäkulut 15 % aiheuttavat merkittävän vaikutuksen.
3. Käytä oikeaa tietorakennetta
Olipa kyse muistin käytöstä tai suorituskyvystä, joskus tietorakenteilla voi olla suuri vaikutus, tässä on joitakin parhaita käytäntöjä:
Sen sijaan, että tallentaisit datan tuhansina (tai miljoonina) erillisinä merkkijonoina, harkitse hajautettujen tietorakenteiden käyttöä aiheeseen liittyvän datan ryhmittelyyn. Hajautustaulukot ovat erittäin tehokkaita ja voivat vähentää muistin käyttöä; Samaan aikaan hajautus on myös hyödyllisempää yksityiskohtien abstraktion ja koodin luettavuuden kannalta.
Tarvittaessa käytä lista setin sijaan. Jos set -ominaisuutta ei tarvitse käyttää, List voi tarjota nopeammat nopeudet kuin asetettu ja käyttää vähemmän muistia.
Lajitellut joukot ovat kalleimpia tietorakenteita sekä muistinkulutuksen että perusoperaatioiden monimutkaisuuden kannalta. Jos tarvitset vain tavan kysyä tietueita etkä välitä niiden ominaisuuksien lajittelusta, on erittäin suositeltavaa käyttää hajautustaulukoita.
Usein unohdettu ominaisuus Redisissä ovat bittikartat tai bittijoukot (V2.2:n jälkeen). Bittisarjat mahdollistavat useiden bittitason operaatioiden suorittamisen Redis-arvoille, kuten kevyen analyysin.
4. Älä käytä näppäintä SCANin käytössä
Redis v2.8:sta lähtien SCAN-komento on jo käytettävissä, mikä mahdollistaa avainten hakemisen avaintilasta kursorin avulla. Verrattuna KEYS-komentoon, vaikka SCAN ei voi palauttaa kaikkia vastaavuuden tuloksia kerralla, se välttää järjestelmän estymisen suuren riskin, jolloin joitakin operaatioita voidaan suorittaa pääsolmulla.
On tärkeää huomata, että SCAN-komento on kursoripohjainen iteraattori. Joka kerta kun SCAN-komento kutsutaan, käyttäjälle palautetaan uusi kursori, ja käyttäjän täytyy käyttää tätä uutta kursoriparametria SCAN-komennolle seuraavassa iteraatiossa, jotta edellinen iterointiprosessi jatkuu. Samaan aikaan SCANin avulla käyttäjät voivat myös säätää komentoja avainnimitilan ja lukumäärän avulla.
SCAN-komennot sisältävät myös SSCAN-komennot, HSCAN-komennot ja ZSCAN-komennot, joita käytetään kokoelmiin, hajautusnäppäimiin ja jatko-osiin.
5. Käytä palvelinpuolen Lua-skriptejä
Redisin käytön aikana Lua-skriptien tuki tarjoaa kehittäjille erittäin ystävällisen kehitysympäristön, vapauttaen käyttäjien luovuuden merkittävästi. Oikein käytettynä Lua-skriptit voivat tuoda merkittäviä parannuksia suorituskykyyn ja resurssien kulutukseen. Sen sijaan, että dataa siirrettäisiin prosessorille, skriptit mahdollistavat logiikan suorittamisen, joka on lähimpänä dataa, mikä vähentää verkon viivettä ja redundanttia tiedonsiirtoa.
Redisissä Lua:n hyvin klassinen käyttötapaus on datan suodattaminen tai yhdistäminen sovellukseen. Kapseloimalla prosessointityönkulun skriptiksi voit yksinkertaisesti kutsua sitä saadaksesi pienemmän vastauksen vähillä resursseilla lyhyemmässä ajassa.
Vinkki:Lua on loistava, mutta siinä on myös ongelmia, kuten vaikeuksia raportoida ja käsitellä bugeja. Fiksu tapa on käyttää Redisin Pub/Sub-ominaisuutta ja antaa skriptin lähettää lokiviestejä omalla kanavalla. Sitten luo tilaajaprosessi ja käsittele se sen mukaisesti.





Edellinen:Redis . .NET:n avoimen lähdekoodin komponentti Beetle.Redis
Seuraava:Asennuspaketti: Microsoft.Bcl 1.1.10 -paketti vaatii NuGet-asiakasversion 2.8.1 tai uudemman...
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com