Hoe Redis Cache te implementeren in ASP.NET

03 augustus 2020 om 14:00 by ParTech Media - Post a comment

Inmiddels zou je weten wat caching is en waarom het vaak door ontwikkelaars wordt gebruikt om de prestaties van hun applicatie te verbeteren. Als dat niet het geval is, raden we je aan ons vorige bericht over de basis van caching te lezen om je door dit bericht te helpen. Caching is sterk gebruikt om het verbruik van bronnen te verminderen en Redis cache is een van de populaire middelen om caching te implementeren.

Er zijn mogelijk tal van frameworks beschikbaar om caching te implementeren, maar we hebben Redis gekozen vanwege de snelle prestaties, schaalbaarheid, ondersteuning voor meerdere talen, om maar een paar functies te noemen.

In dit bericht gaan we je een stap verder brengen in jouw caching-reis door je te helpen begrijpen hoe je Redis Cache in de ASP.NET-toepassing kunt implementeren.

Inhoudsopgave

  1. Hoe installeer ik Redis Cache?
  2. De client instellen
  3. Hoe werkt jouw toepassing met de Redis-cache?
  4. Conclusie

Hoe moet je de Redis Cache installeren?

De eerste stap in jouw zoektocht naar een antwoord op de vraag 'Hoe Redis-cache in ASP.NET-toepassing te implementeren', is om Redis op jouw lokale systeem te installeren. GitHub heeft een downloadbare versie van Redis Cache voor Windows. Hier is de link om het te downloaden.

Je hebt de mogelijkheid om een MSI-bestand of een zip-bestand te downloaden. Het MSI-bestand installeert Redis meestal op jouw lokale computer en maakt een Windows-service aan. Hierdoor wordt de Redis-server automatisch gestart bij het opstarten. Aan de andere kant, in de zip-bestandsversie, moet je de server handmatig starten elke keer dat je jouw toepassing nodig hebt om met Redis te communiceren.

In ons geval hebben we de gezipte versie gedownload. Nadat je de bestanden naar jouw lokale systeem hebt uitgepakt, klik je op het bestand server.exe. Hierdoor wordt de Redis-server gestart en krijg je een scherm te zien zoals hieronder weergegeven. Het scherm laat ook zien dat de server nu klaar is om de verbindingen op poort 6379 te accepteren.

Je kunt ook controleren of de server is gestart door het bestand redis-cli.exe te selecteren en het commando "ping" in te voeren. Als de server goed werkt, krijg je het antwoord als "pong".

Hier is 127.0.0.1:6379 de localhost waarmee we verbinding zullen maken met onze client.

De client instellen

Nu de Redis-cacheserver actief is, is de volgende stap om de client te laten communiceren met de cache. Laten we hiervoor een client bouwen om gegevens van en naar Redis Cache op te slaan en op te halen. Begin het proces door een nieuw console toepassings project te maken in Visual Studio.

Nadat het consoleproject met succes is gemaakt, installer je het ServiceStack.Redis-package met behulp van de NuGet-packagemanager. Deze bibliotheek is essentieel om jouw client te laten communiceren met de Redis-server.

Om de package te installeren, hoef je alleen maar naar het ServiceStack.Redis package package te zoeken in de NuGet-explorer en het te installeren.

Nadat het ServiceStack.Redis-package is geïnstalleerd, is de volgende stap het definiëren van de SAVE- en GET-functies. Maar voordat we begrijpen wat de SAVE- en GET-functies zijn of hoe we deze moeten instellen, laten we even kort samenvatten hoe Redis Cache werkt aan de hand van een voorbeeld.

Hoe werkt jouw applicatie met Radis Cache?

Stel dat jouw applicatie door organisaties wordt gebruikt om de gegevens van medewerkers op te slaan. Een van de velden die moeten worden vastgelegd, is hun land, dat we hebben besloten in de vorm van een vervolgkeuzemenu aan de gebruiker weer te geven.

Laten we nu aannemen dat jouw database om de een of andere reden het landveld niet opslaat (stel dat de landenlijst regelmatig verandert of dat jouw toepassing verbiedt om landen op te slaan). In plaats daarvan haal je de landenlijst van een service van derden en vul je deze in de vervolgkeuzelijst telkens wanneer een gebruiker zich probeert te registreren.

Op een bepaalde dag proberen duizenden gebruikers zich te registreren. Dit betekent meer dan duizend verzoeken aan de service van derden. Nu wordt dit een dure aangelegenheid als de externe service kosten in rekening brengt voor elk verzoek aan hun service.

Om dit te voorkomen hebben we Redis Cache die de informatie tijdelijk opslaat. Wanneer de eerste gebruiker zich probeert te registreren, wordt de landenlijst uit de service van derden gehaald en aan de gebruiker weergegeven in het vervolgkeuzemenu. Tegelijkertijd worden de landen ook opgeslagen in de Redis Cache. Zodra de gegevens zijn opgeslagen in de Redis-cache, kunnen de gegevens veel sneller (en gratis) naar de volgende gebruiker worden getrokken. De landenlijst kan aan het einde van de dag in de cache worden gereset om de volgende dag fris te beginnen.

Hier is een diagram om weer te geven hoe uw toepassing samenwerkt met de Redis-cache en de service van derden om de gegevens op te halen.

In het bovenstaande diagram zul je zien dat er twee functies zijn genaamd GET en SAVE. De GET-functie wordt gebruikt om de informatie uit de Redis Cache te halen en deze in de toepassing weer te geven, terwijl de SAVE-functie wordt gebruikt om de gegevens op te slaan in Redis Cache die uit de service van derden zijn gehaald.

IIn jouw consoleproject in Visual Studio kun je de SAVE-functie als volgt definiëren. Om dit te definiëren, hebben we hetzelfde voorbeeld beschouwd van het opslaan/trekken van een lijst met landen hier, dat werd eerder al uitgelegd.

En definieer de GET-functie zoals hieronder.

Laten we de hoofdfunctie definiëren om de GET- en SAVE-functies aan te roepen.

IIn de bovenstaande definitie zou je ook een ValidateKeyIsPresent functie zien gedefinieerd. Weet je waarom?

Onthoud dat Redis een op sleutels gebaseerd cachingsysteem is. Dit betekent dat je alleen gegevens uit de cache kunt halen als je de sleutel verzendt die aan die gegevens is gekoppeld. Deze controle wordt hier uitgevoerd door de functie ValidateKeyIsPresent. Als de sleutel niet aanwezig is, kunnen de gegevens niet uit de cache worden opgehaald en worden ze in plaats daarvan opgehaald van de service van derden.

Nadat de console-app is uitgevoerd, moet er een sleutelnaam zijn SAARC-landen. Als we redis-cli.exe in een terminal uitvoeren en het commando KEYS * uitvoeren, krijgen we alle huidige sleutels opgeslagen in Redis.

Om onze lijst met landen te krijgen, voer je eenvoudig het GET commando uit met de sleutelnaam GET "SAARC-landen" of met een patroon GET SAA*.

Conclusie

Dit artikel heeft jou laten zien hoe je Redis in jouw ASP.NET-toepassing kunt implementeren. Redis is een uitstekende keuze voor zowel commercieel als niet-commercieel gebruik, omdat het volledig gratis en open source is. Bovendien is het extreem snel en werkt het met verwaarloosbare prestatieoverhead bij het beheren van de gegevens. Dus ga je gang en stel Redis in je applicatie in om je bezoekers een razendsnelle gebruikerservaring te geven.

Nieuwste