Ohjelmointi

Kuinka työskennellä Redis-välimuistin kanssa .NET

Välimuisti on tilanhallintastrategia, jota voidaan käyttää sovellusten suorituskyvyn parantamiseen, koska se auttaa vähentämään järjestelmän resurssien kulutusta.

Redis Cache on avoimen lähdekoodin, nopea, NoSQL-tietokanta. Se on nopea, ja se toimii kokonaan muistissa, ja suorituskyky on vähäistä tietojen lukemisen ja kirjoittamisen aikana. On huomattava, että Redis on ilmainen sekä kaupalliseen että ei-kaupalliseen käyttöön BSD-lisenssin nojalla.

Mikä on Redis-välimuisti ja miksi minun pitäisi käyttää sitä?

Redis on yksi suosituimmista avoimen lähdekoodin, NoSQL, muistiin perustuvista tietovarastoista. Se on muistin sisäinen tietovarasto, joka tukee monenlaisia ​​tietorakenteita, kuten merkkijonoja, hajautuksia, sarjoja, luetteloita jne. Redis tarjoaa myös sisäänrakennetun tuen replikointiin ja tapahtumiin sekä erinomaisen tuen tietojen pysyvyydelle.

Redis on hyvä valinta ensisijaisesti, jos sovelluksesi täytyy tallentaa ja noutaa valtava määrä tietoja. Jos sovelluksesi on tallennettava ja haettava paljon dataa eikä vapaan muistin saatavuus ole rajoitus, Redis-välimuisti on välimuistimoottori, johon sinun pitäisi mennä. Redisin asentaminen on melko yksinkertaista - seuraavissa osioissa keskustellaan Redisin asentamisesta, määrittämisestä ja käytöstä.

Redisin asentaminen

Voit ladata kopion Redis-välimuistista GitHubista. Kun asennat Redistä, sinun on tarkistettava vaihtoehto lisätä Redis PATH-ympäristömuuttujaan. Kun Redis-välimuisti on asennettu järjestelmään, voit kirjoittaa Suorita -> service.msc nähdäksesi Redis-palvelun käynnissä järjestelmässäsi.

Työskentely C # Redis -asiakkaan kanssa

Nyt kun Redis on asennettu järjestelmään, tarvitset asiakkaan tallentamaan ja noutamaan tietoja Redis-välimuistiin ja sieltä. Tässä esimerkissä käytämme avoimen lähdekoodin ServiceStack C # Redis -asiakasohjelmaa. Voit tehdä tämän luomalla uuden konsolisovelluksen Visual Studiossa. Voit asentaa ServiceStack.Rediksen NuGet-paketinhallinnan kautta.

Olettaen, että ServiceStack.Redis on asennettu NuGetin kautta, seuraavat kaksi tapaa kuvaavat, kuinka voit tallentaa ja noutaa tietoja Redis-välimuistista ServiceStack.Redis-sovellusliittymän avulla.

yksityinen staattinen bool Save (merkkijonon isäntä, merkkijonoavain, merkkijonoarvo)

        {

bool isSuccess = epätosi;

käyttämällä (RedisClient redisClient = uusi RedisClient (isäntä))

            {

if (redisClient.Get (avain) == null)

                {

isSuccess = redisClient.Set (avain, arvo);

                }

            }

paluu on Menestys;

        }

yksityinen staattinen merkkijono Get (merkkijono isäntä, merkkijonoavain)

        {

käyttämällä (RedisClient redisClient = uusi RedisClient (isäntä))

            {

return redisClient.Get (avain);

            }

        }

Huomaa, kuinka RedisClient-luokan Set and Get -menetelmiä on käytetty tietojen tallentamiseen ja hakemiseen Redis-välimuistiin ja sieltä. Jätän teille päivittää nämä kaksi tapaa tehdä niistä yleisiä, jotta ne voivat toimia minkä tahansa tyyppisillä.

Näin voit kutsua näitä menetelmiä päämenetelmästä:

staattinen void Main (merkkijono [] args)

        {

merkkijono isäntä = "paikallinen isäntä";

merkkijonoavain = "";

// Tallenna tiedot välimuistiin

bool menestys = Tallenna (isäntä, avain, "Hei maailma!");

// Nouda tiedot välimuistista avaimen avulla

Console.WriteLine ("Redis-välimuistista haetut tiedot:" + Hae (isäntä, avain));

Konsoli.Lue ();

        }

Kuten sanoin aiemmin, Redis on monipuolinen. Yhdessä tulevista artikkeleistani täällä käsittelen joitain kehittyneitä käsitteitä, kuten pysyvyys, pub-sub, automaattinen vianmääritys jne. Voit hyödyntää RDB: tä (yksi kompakti tiedosto) tai AOF: n pysyvyyttä. Sinun on kuitenkin harkittava suorituskyvyn, kestävyyden ja levyn I / O-kompromisseja, ennen kuin valitset oikean pysyvyysvaihtoehdon.

Voit oppia lisää Redisistä projektin online-dokumentaatiosta.

Jos haluat käyttää GUI-hallintatyökalua Redis-tietojen tarkasteluun, voit kokeilla Redis-järjestelmänvalvojan käyttöliittymää.

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