Maak kennis met Redis en leer hoe u uw Node-apps kunt optimaliseren met deze krachtige gegevensopslag.

Wanneer u een web-app bouwt, moet u ervoor zorgen dat deze schaalbaar en efficiënt is. Om dit te doen, moet u rekening houden met verschillende principes en concepten.

Redis is een van de vele technologieën die u kunnen helpen de prestaties van uw webapplicaties te verbeteren. Het biedt opmerkelijke functies die u kunt gebruiken om de prestaties van elke webapp te verbeteren.

Wat is Redis precies en hoe kunt u het gaan gebruiken met uw Node.js-webapplicaties?

Wat is Redis en wanneer moet u het gebruiken?

Redis is een open-source, in-memory, key-value datastore. Het is een flexibele technologie die kan fungeren als werkwachtrij, database, cache, sessiemanager, berichtenmakelaar en meer.

De combinatie van de snelheid, veelzijdigheid en het gebruiksgemak van Redis maakt het tot een zeer waardevolle tool in het ecosysteem van softwareontwikkelaars.

Wanneer moet u Redis gebruiken?

Redis is zeer geschikt voor veel taken, maar u moet voorzichtig zijn om het alleen te gebruiken als het zinvol is om dit te doen.

Overweeg om Redis te gebruiken in deze scenario's:

  • Caching: Redis is de meest populaire manier om een ​​cache te implementeren om belasting van databases te voorkomen en de algehele prestaties te verbeteren.
  • Sessie beheer: Het opslaan en beheren van gebruikerssessies voor authenticatie en statusbeheer is heel eenvoudig met Redis.
  • Tijdelijke gegevensopslag: Met Redis kunt u gegevens opslaan en na een bepaalde tijd automatisch verwijderen. Dit maakt het een goed hulpmiddel voor het opslaan van tijdelijke gegevens zoals JSON-webtokens, baan wachtrijen, enz.

Andere gevallen waarin u zou moeten overwegen om Redis te gebruiken, zijn onder meer het implementeren van een berichtenmakelaar, optimaliseren databasebewerkingen, en zelfs het efficiënt opslaan en openen van gegevensstructuren zoals lijsten, sets en hasj.

Redis gebruiken met Node.js

Node.js is een populaire technologie voor het bouwen van efficiënte en schaalbare server-side apps. U kunt het gebruiken in combinatie met ondersteunende technologieën zoals Redis om hoge prestaties en schaalbaarheid te verkrijgen.

Redis ondersteunt meerdere talen. Je kan het gebruiken voor gegevensopslag in PHP En er zijn uitstekende Redis-clients voor Golang. De twee meest populaire Redis-clients voor Node.js zijn knooppunt-redis En joredis.

Beide pakketten zijn verkrijgbaar via npm en zijn makkelijk in gebruik. Het belangrijkste verschil is dat knooppunt-redis is de officiële klant, terwijl de gemeenschap aanbeveelt joredis.

Verbinding maken met Redis vanuit Node.js

Om aan de slag te gaan, moet Redis op uw computer zijn geïnstalleerd en moet er een Node.js-ontwikkelomgeving zijn ingesteld. Bekijk de installatiehandleiding op Redis.io om Redis op Linux, macOS en Windows te installeren.

U moet uw gewenste Redis-client-SDK in uw project installeren om verbinding te kunnen maken met Redis. Afhankelijk van uw voorkeur (we gebruiken knooppunt-redis), voer een van de onderstaande opdrachten uit om de Redis-client te installeren:

npm install redis --save
npm install ioredis --save

De eerste opdracht wordt geïnstalleerd knooppunt-redis, terwijl de tweede wordt geïnstalleerd joredis.

Om uw nieuw geïnstalleerde client te configureren, moet u ervoor zorgen dat Redis actief is. Dit doe je door simpelweg te beginnen redis-cli in je terminal:

De ping opdracht pingt de server om te bevestigen dat deze actief is, en a PONG reactie in de CLI betekent dat de server goed werkt. Maak nu een redis.js bestand in uw Node-project en schrijf de volgende code erin om Redis te configureren:

const redis = vereisen("redis")

// initialiseren met behulp van standaardconfiguratie
const RedisClient = redis.createClient()

const connectRedis = asynchroon () => {
// maak verbinding met redis
wachten RedisClient.connect()

// verwerkingsfout
RedisClient.on('fout', (fout) => {
troosten.fout(`Er is een fout opgetreden met Redis: ${fout}`)
})

troosten.log('Redis succesvol verbonden...')
}

De bovenstaande code initialiseert een nieuwe Redis-client in de toepassing. De maakKlant Met de functie van het redis-pakket kunt u een client maken met de door u opgegeven parameters.

U kunt uw host, poort, gebruikersnaam, wachtwoord of verbindingsreeks opgeven of de standaardwaarden gebruiken. Bijvoorbeeld, knooppunt-redis zal beginnen te draaien op localhost, op poort 6379, standaard.

Hier zijn een paar manieren waarop u de maakKlant functie:

// met behulp van een verbindingsreeks
const RedisClient = redis.createClient("rediss://127.0.0.1:6379")

// parameterobject gebruiken
const RedisClient = redis.createClient({
stopcontact: {
gastheer: "127.0.0.1",
haven: "6379"
},
gebruikersnaam: "uw redis gebruikersnaam",
wachtwoord: "je wachtwoord"
})

Gebruik beveiligde Redis-instanties in productie. Wanneer dit het geval is, heb je ofwel een veilige URL string voor verbinding of gebruik de hierboven getoonde parameters. Wat ook het geval is, vergeet niet om inloggegevens uit de code te houden en in plaats daarvan omgevingsvariabelen te gebruiken.

Basis Redis-bewerkingen uitvoeren in Node.js

De volgende code maakt verbinding met Redis met behulp van de connectRedis functie hierboven en demonstreert enkele basisbewerkingen die u in Redis kunt uitvoeren vanuit uw Node-toepassingen.

const testRedis = asynchroon () => {
wachten connectRedis()

// Stel een waarde in en haal deze op
wachten RedisClient.set("naam", "Timmie")
const getCommand = wachten RedisClient.get("naam")
troosten.log (getOpdracht)

// Verwijder waarden onmiddellijk of stel in dat ze verlopen
// in een aantal seconden
wachten RedisClient.del("naam");
wachten RedisClient.setEx("plaats", 60, "Lago's")

// Duw op de voor- of achterkant van een lijst
wachten RedisClient.lPush("dagen", "Maandag")
wachten RedisClient.rPush("dagen", "Dinsdag")
wachten RedisClient.lPush("dagen", "Woensdag")
const dagenArray = wachten RedisClient.lRange("dagen", 0, -1)
// prints ['woensdag', 'maandag', 'dinsdag']
troosten.log (daysArray)

// Verwijder een item van de voor- of achterkant van een lijst
wachten RedisClient.rPop("dagen")
wachten RedisClient.lPop("dagen")
const nieuweDagenArray = wachten RedisClient.lRange("dagen", 0, -1)
// drukt af ['maandag']
troosten.log (nieuweDagenArray)
}

testRedis()

Let op het gebruik van asynchroon En wachten hier. Dit komt omdat alle functies asynchroon worden uitgevoerd en beloftes retourneren, dus als u hun resultaten onmiddellijk nodig hebt, is het belangrijk om dat te doen wachten hen.

De bovenstaande code toont alleen enkele basisbewerkingen die u in Redis kunt uitvoeren vanuit een Node.js-toepassing. Er zijn nog veel meer commando's en concepten die het bekijken waard zijn.

De Redis-opdrachten sectie in de README op node-redis'sGitHub repository is een goede plek om alle andere commando's en wat ze doen te vinden.

Gebruik Redis om efficiënte applicaties te bouwen

Door de kracht van Redis te benutten, kunt u als ontwikkelaar zeer efficiënte server-side applicaties bouwen. Met Redis' in-memory dataopslag en uitgebreide datastructuren en commando's kunnen applicaties opmerkelijke prestatie-optimalisaties realiseren.

U moet zeker overwegen om Redis te integreren in uw volgende Node.js-applicatie om de prestaties van uw app te verbeteren en een betere gebruikerservaring te bieden.