Programmēšana

Kā strādāt ar Redis kešatmiņu .NET

Kešatmiņa ir stāvokļa pārvaldības stratēģija, kuru var izmantot, lai uzlabotu lietojumprogrammu veiktspēju, jo tā palīdz samazināt resursu patēriņu jūsu sistēmā.

Redis Cache ir atvērtā koda, ātrgaitas, NoSQL datu bāze. Tas ir ātri, un tas pilnībā darbojas atmiņā ar nenozīmīgu veiktspēju, lasot un rakstot datus. Jāatzīmē, ka Redis ir bezmaksas gan komerciālai, gan nekomerciālai lietošanai saskaņā ar BSD licenci.

Kas ir Redis kešatmiņa un kāpēc man to izmantot?

Redis ir viens no populārākajiem pieejamajiem atmiņā balstītajiem datu avotiem NoSQL. Tas ir atmiņā esošs datu krājums, kas var atbalstīt dažādas datu struktūras, t.i. virknes, jaucējkrānus, kopas, sarakstus utt. Redis nodrošina arī iebūvētu atbalstu replikācijai un transakcijām, kā arī lielisku atbalstu datu noturībai.

Redis ir laba izvēle galvenokārt tad, ja jūsu lietojumprogrammai ir nepieciešams uzglabāt un iegūt milzīgu datu daudzumu. Ja jūsu lietojumprogrammai ir nepieciešams uzglabāt un izgūt daudz datu un brīvas atmiņas pieejamība nav ierobežojums, Redis kešatmiņa ir kešatmiņas dzinējs, uz kuru jums vajadzētu doties. Redis iestatīšana ir pavisam vienkārša - turpmākajās sadaļās tiek apspriests, kā instalēt, konfigurēt un izmantot Redis.

Redis instalēšana

Redis kešatmiņas kopiju varat lejupielādēt vietnē GitHub. Instalējot Redis, jums jāpārbauda iespēja pievienot Redis PATH vides mainīgajam. Kad Redis kešatmiņa ir instalēta jūsu sistēmā, varat ierakstīt Run -> service.msc, lai redzētu Redis pakalpojumu, kas darbojas jūsu sistēmā.

Darbs ar C # Redis klientu

Tagad, kad Redis ir instalēts jūsu sistēmā, jums ir nepieciešams klients, kurš glabā un izgūst datus Redis kešatmiņā un no tās. Šajā piemērā mēs izmantosim atvērtā koda klientu ServiceStack C # Redis. Lai to izdarītu, Visual Studio izveidojiet jaunu konsoles lietojumprogrammas projektu. ServiceStack.Redis var instalēt, izmantojot NuGet pakotņu pārvaldnieku.

Pieņemot, ka ServiceStack.Redis ir instalēts, izmantojot NuGet, šādas divas metodes ilustrē, kā jūs varat saglabāt un izgūt datus no Redis kešatmiņas, izmantojot ServiceStack.Redis API.

privāta statiska būla saglabāšana (virknes resursdators, virknes atslēga, virknes vērtība)

        {

bool isSuccess = nepatiesa;

izmantojot (RedisClient redisClient = new RedisClient (resursdators))

            {

if (redisClient.Get (atslēga) == null)

                {

isSuccess = redisClient.Set (atslēga, vērtība);

                }

            }

atgriešanās ir Panākumi;

        }

privāta statiska virkne Get (virknes resursdators, virknes atslēga)

        {

izmantojot (RedisClient redisClient = new RedisClient (resursdators))

            {

atgriezties redisClient.Get (atslēga);

            }

        }

Ņemiet vērā, kā klases RedisClient metodes Set un Get tiek izmantotas, lai uzglabātu un izgūtu datus no Redis Cache un no tā. Es jums atstāju šo divu metožu atjaunināšanu, lai padarītu tās vispārīgas, lai tās varētu strādāt ar jebkuru veidu.

Lūk, kā jūs varat izsaukt šīs metodes no galvenās metodes:

static void Main (virkne [] args)

        {

virknes resursdators = "localhost";

virknes atslēga = "";

// Saglabājiet datus kešatmiņā

bool panākumi = Saglabāt (resursdators, atslēga, "Sveika pasaule!");

// Iegūstiet datus no kešatmiņas, izmantojot atslēgu

Console.WriteLine ("Dati iegūti no Redisa kešatmiņas:" + Get (resursdators, atslēga));

Konsole. Lasīt ();

        }

Kā jau teicu iepriekš, Redis ir daudzfunkcionāls. Vienā no maniem turpmākajiem rakstiem šeit es apspriedīšu dažus uzlabotus jēdzienus, piemēram, noturība, pub-sub, automātiska kļūmjpārlēce utt. Varat izmantot RDB (viens kompakts fails) vai AOF neatlaidības veidu. Tomēr, pirms izvēlaties pareizo noturības opciju, jums jāapsver kompromisi starp veiktspēju, izturību un diska I / O.

Jūs varat uzzināt vairāk par Redisu no projekta tiešsaistes dokumentācijas.

Ja vēlaties rediģēt datus, izmantojot GUI administratora rīku, varat izmēģināt Redis administratora lietotāja saskarnes rīku.

$config[zx-auto] not found$config[zx-overlay] not found