Inleiding tot Redis Cache

02 juli 2020 om 12:30 by ParTech Media - Post a comment

Elke ontwikkelaar voelt zich extatisch wanneer het aantal bezoekers van hun website stijgt. Maar dit betekent ook dat er meer gegevens moeten worden opgeslagen. En dezelfde ontwikkelaar die blij was, begint na te denken over wat te doen om deze eeuwige stapel gegevens op te slaan. Een manier om dit op te lossen is door jouw databaseopslag uit te breiden. Maar het lost geen problemen op zoals stijgende kosten en het vermenigvuldigen van verzoeken aan de database, wat leidt tot langere reactietijden.

De andere oplossing is caching, wat jouw zaak enorm kan helpen. Caching is niets nieuws voor de meesten van ons, omdat we in onze browsers vaak gegevens in de cache zouden hebben verwerkt of gezien. Maar voor niet-ingewijden is caching een proces dat helpt om pagina's sneller te laden en dat eigenaren van applicaties helpt om de enorme kosten voor het uitbreiden van de database te besparen.

Een van de populaire caching-servers is Redis. Redis biedt grote voordelen zoals hoge snelheid, ondersteuning voor meerdere programmeertalen, schaalbaarheid om er maar een paar te noemen. Al deze functies maken het een ideale keuze als caching-server.

In dit bericht gaan we meer begrijpen over caching, hoe het nuttig is en waarom Redis een populaire keuze is voor caching.

Inhoudsopgave

  1. Wat is cachen?
  2. Hoe caching de gebruikersreis verbetert?
  3. Wat is Redis?
  4. Waarom Redis gebruiken voor caching?
  5. Hoe installer je redis op Ubuntu?
  6. Conclusie

Wat is cachen?

In eenvoudige bewoordingen is caching het proces van het opslaan van gegevens in een tijdelijke opslagcomponent, die vervolgens gemakkelijk kunnen worden opgehaald om de gegevens sneller te bedienen.

What is caching

Caching werkt volgens het eenvoudige principe van het efficiënt hergebruiken van eerder berekende gegevens die zijn opgeslagen bovenop de eigenlijke opslaglaag. De gegevens in de cache worden meestal opgeslagen in RAM en kunnen worden gebruikt in verband met een softwarecomponent.

In de afbeelding hier is het eerste scenario een systeem zonder cache. Hierbij, wanneer een gebruiker een verzoek plaatst via de applicatie, ondervraagt de server de database telkens wanneer een verzoek wordt ontvangen en reageert met de gegevens die zijn ontvangen van de database.

In het tweede scenario heeft het systeem een speciale cache. Telkens wanneer een gebruiker een verzoek via de applicatie plaatst, wordt eerst de cacheserver opgevraagd en als de informatie beschikbaar is, reageert deze terug op de applicatie. Als de informatie niet op de cacheserver staat, wordt de database opgevraagd. Samen met het antwoord wordt de informatie nu opgeslagen in de cacheserver om te worden gebruikt voor het volgende verzoek.

Hoe caching de klantreis verbetert?

Laten we dit met een voorbeeld begrijpen. Stel dat je jouw favoriete winkelportaal bezoekt en een bestelling voltooit. Om dit te doen, laten we aannemen dat de applicatie je profielgegevens tien keer moest ophalen voor verschillende stappen (verzendadres ophalen, eerdere winkelwagenitems ophalen, opgeslagen betalingsgegevens, enz.). Elke keer dat de server de database bereikt en op de toepassing reageert, duurt het 2 seconden. Dus de totale tijd die je wacht tot de toepassing is geladen, is 2 * 10 = 20 seconden.

Ervan uitgaande dat deze applicatie een cacheserver heeft, duurt het voor de eerste keer de volledige 2 seconden om de informatie uit de database op te halen. Maar daarna wordt de informatie opgeslagen in de cache. Het ophalen van details uit de cache gaat razendsnel en we gaan ervan uit dat het de helft van de tijd van het eerste verzoek (1 seconde) kost. Jouw totale wachttijd tijdens jouw winkelreis is dus 2 + 1*10= 12 seconden. Dit is bijna de helft van de tijd die je had besteed aan het wachten op het eerste scenario, wat betekent dat je ervaring met het tweede scenario veel beter zal zijn vanwege de kortere wachttijd. Maar wat nog belangrijker is, het helpt jouw toepassing om de SEO-ranglijst aanzienlijk te verbeteren, aangezien de laadtijd van de pagina een belangrijke rol speelt bij het bepalen ervan.

Nu we caching hebben gezien en hoe het nuttig is, gaan we in de volgende sectie duiken in een populaire cacheserver genaamd Redis.

Wat is redis?

Zoals je inmiddels weet, is een cache een speciale service die als server fungeert door webpagina's en inhoud lokaal op te slaan. Het plaatst de gevraagde informatie in een tijdelijke opslag die ook de cache is. Een cacheserver geeft gebruikers ook toegang tot de webpagina's, zelfs in de offline modus. Een van de databases die effectief als cacheserver wordt gebruikt, is Redis.

Redis is een open-source NoSQL-database die werkt volgens het principe van een key-value store. Een sleutelwaardearchief is een proces waarbij sommige gegevens in een sleutel worden opgeslagen. Alleen degenen die over de sleutel beschikken, hebben toegang tot de gegevens. Redis staat voor Remote Dictionary Server en wordt in de volksmond gebruikt als database, cache, message broker en wachtrij. Redis ondersteunt verschillende soorten datastructuren zoals hashes, strings, lijsten, bitmaps om er maar een paar te noemen.

Redis werkt meestal op de Master/Slave-configuratie en ondersteunt ook sharding, waardoor het vrij eenvoudig is om de dataset over meerdere exemplaren van Redis te distribueren. Een ander belangrijk kenmerk van Redis is dat het voornamelijk atomair werkt. Dit betekent dat je veilig een key kunt instellen of verhogen, elementen uit een set kunt toevoegen of verwijderen of zelfs een counter kunt verhogen.

Waarom redis gebruiken voor cachen?

Eenvoudig in gebruik

Redis vrij eenvoudig te gebruiken omdat er minder regels code nodig zijn om gegevens in uw applicaties te beheren.

Ondersteuning voor meerdere talen

Redis ondersteunt de meeste programmeertalen, waaronder Java, Python, Node.js, R, Go om er maar een paar te noemen.

Replicatie

Redis heeft een primaire-replica-architectuur gecombineerd met asynchrone replicatie. Dit betekent dat de gegevens kunnen worden gerepliceerd naar meerdere replicaservers wat automatisch een positieve invloed heeft op de leesprestaties. Het vergemakkelijkt ook sneller herstel in het geval van een storing in de primaire server.

Vasthoudendheid

De point-in-time back-ups die door Redis worden ondersteund en ook het feit dat alle gegevens in het geheugen staan, maken de gegevens behoorlijk persistent. Het maakt gebruik van flexibel beleid op basis van de verstreken tijd en het aantal updates dat is uitgevoerd sinds de laatste keer opslaan. Het ondersteunt een bestandspersistentiemodus die alleen kan worden toegevoegd.

Snelheid

Redis garandeert razendsnelle prestaties omdat het de volledige dataset in het primaire geheugen opslaat. Het ondersteunt ook het pipelinen van opdrachten en maakt het gebruik van meerdere waarden in één opdracht mogelijk, wat leidt tot snellere communicatie met clientbibliotheken.

Schaalbaar

Een van de belangrijke vereisten voor elk cachesysteem is schaalbaarheid en Redis faciliteert dat moeiteloos. Redis kan horizontaal worden geschaald om elke stijging in de vraag naar RAM te beheren. Dit wordt bereikt door het proces van clustering, waarbij het cluster doorgaans bestaat uit meerdere Redis-servers. Elk van deze servers (ook wel shard genoemd) is verantwoordelijk voor de subset van de sleutelruimte van de cache. Dit maakt schalen mogelijk door gewoon meer shards toe te voegen.

Lokale cache-replica's

Het is mogelijk om Redis te implementeren op dezelfde server waarop de applicatieprocessen worden uitgevoerd. Dit betekent dat het kan fungeren als een lokale privécache. Zodra dit is bereikt, kan de replicatiefunctie van Redis worden gebruikt om de lokale replica's van de centrale gedeelde cache te onderhouden.

Hoe installeer je redis op Ubuntu?

Voordat je begint met de installatie van Redis op Ubuntu, moet je ervoor zorgen dat je bent aangemeld met sudo-rechten.

De eerste stap is om de lijst met apt-pakketten bij te werken door de onderstaande opdracht in jouw SSH-terminal uit te voeren:

sudo apt update

Zodra dit is gebeurd, installer je Redis met de onderstaande opdracht:

sudo apt install redis-server         

Zodra de installatie is voltooid, wordt Redis automatisch gestart. Je kunt de status van de service controleren met het volgende commando:

sudo systemctl status redis-server

Als alles goed is ingesteld, krijg je geen foutmelding bij het uitvoeren van deze opdracht. Dit geeft aan dat uw Redis-server klaar is voor gebruik.

Conclusie

Caching is altijd een van de populaire mechanismen geweest om webpagina-inhoud snel aan bezoekers te leveren en Redis is de go-to-database voor de cachingbehoeften van de meeste organisaties. Twitter, GitHub, Weibo en Snapchat zijn enkele van de populaire organisaties die Redis in hun ecosysteem hebben opgenomen. Een van de redenen voor zijn populariteit en enorme acceptatie is dat het open-source is, wat betekent dat het door iedereen over de hele wereld kan worden gebruikt. In dit bericht hebben we niet alleen in detail uitgelegd hoe caching ons helpt en waarom Redis voor caching wordt gebruikt, maar ook hoe je Redis in je systeem kunt instellen. In een van onze komende berichten zullen we je helpen om Redis-caching in ASP.NET te implementeren.

Nieuwste