Hur man arbetar med Redis Cache i .NET

Caching är en statshanteringsstrategi som kan användas för att förbättra prestanda för dina applikationer eftersom det hjälper dig att minska resursförbrukningen i ditt system.

Redis Cache är en öppen källkod, höghastighets NoSQL-databas. Det är snabbt och det körs helt i minnet med försumbar prestandakostnad när du läser och skriver data. Det bör noteras att Redis är gratis för både kommersiell och icke-kommersiell användning under BSD-licensen.

Vad är Redis Cache och varför ska jag använda det?

Redis är en av de mest populära open source, NoSQL, in-memory-baserade datalagrarna. Det är en datalager i minnet som kan stödja en mängd olika datastrukturer, dvs. strängar, hash, uppsättningar, listor etc. Redis erbjuder också inbyggt stöd för replikering och transaktioner, samt utmärkt stöd för datapresistens.

Redis är ett bra val främst om din applikation behöver lagra och hämta en enorm mängd data. Om din applikation behöver lagra och hämta massor av data och tillgängligheten av ledigt minne inte är en begränsning, är Redis Cache den cachemotor du ska gå till. Att konfigurera Redis är ganska enkelt - avsnitten som följer diskuterar hur man installerar, konfigurerar och använder Redis.

Installerar Redis

Du kan ladda ner en kopia av Redis Cache från GitHub. När du installerar Redis bör du markera alternativet att lägga till Redis i miljövariabeln PATH. När Redis Cache är installerat i ditt system kan du skriva Kör -> service.msc för att se Redis-tjänsten körs i ditt system.

Arbetar med C # Redis-klienten

Nu när Redis har installerats i ditt system behöver du en klient för att lagra och hämta data till och från Redis Cache. I det här exemplet använder vi ServiceStack C # Redis med öppen källkod. För att göra detta skapar du ett nytt konsolapplikationsprojekt i Visual Studio. Du kan installera ServiceStack.Redis via NuGet-pakethanteraren.

Förutsatt att ServiceStack.Redis har installerats via NuGet illustrerar följande två metoder hur du kan lagra och hämta data från Redis Cache med ServiceStack.Redis API.

privat statisk bool Spara (strängvärd, strängnyckel, strängvärde)

        {

            bool isSuccess = false;

            använder (RedisClient redisClient = ny RedisClient (värd))

            {

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

                {

                    isSuccess = redisClient.Set (nyckel, värde);

                }

            }

            return isSuccess;

        }

        privat statisk sträng Get (strängvärd, strängnyckel)

        {

            använder (RedisClient redisClient = ny RedisClient (värd))

            {

                returnera redisClient.Get (nyckel);

            }

        }

Observera hur Set and Get-metoderna i RedisClient-klassen har använts för att lagra och hämta data till och från Redis Cache. Jag lämnar upp till dig att uppdatera dessa två metoder för att göra dem generiska så att de kan arbeta med vilken typ som helst.

Så här kan du kalla dessa metoder från Main-metoden:

static void Main (sträng [] args)

        {

            string host = "localhost";

            strängnyckel = "";

            // Lagra data i cachen

            bool success = Spara (värd, nyckel, "Hello World!");

            // Hämta data från cachen med hjälp av nyckeln

            Console.WriteLine ("Data hämtad från Redis Cache:" + Get (värd, nyckel));

            Console.Read ();

        }

Som jag sa tidigare är Redis funktionsrikt. I en av mina framtida artiklar här kommer jag att diskutera några avancerade begrepp som uthållighet, pub-sub, automatisk redundans osv. Du kan dra nytta av RDB (en enda kompakt fil) eller AOF-sätt att uthärda. Du måste dock överväga avvägningarna mellan prestanda, hållbarhet och disk-I / O innan du väljer rätt uthållighetsalternativ.

Du kan lära dig mer om Redis från projektets online-dokumentation.

Om du är intresserad av att använda ett GUI-administratörsverktyg för att visa dina Redis-data kan du prova Redis Admin UI-verktyg.