Få styr på Redis, og lær, hvordan du optimerer dine Node-apps med dette kraftfulde datalager.

Når du bygger en webapp, skal du sørge for, at den er skalerbar og effektiv. For at gøre det skal du tage flere principper og koncepter i betragtning.

Redis er en af ​​de mange teknologier, der kan hjælpe med at forbedre dine webapplikationers ydeevne. Det tilbyder bemærkelsesværdige funktioner, som du kan bruge til at forbedre ydeevnen af ​​enhver webapp.

Så hvad er Redis præcist, og hvordan kan du begynde at bruge det med dine Node.js-webapplikationer?

Hvad er Redis, og hvornår skal du bruge det?

Redis er et open source-datalager i hukommelsen med nøgleværdier. Det er en fleksibel teknologi, der kan fungere som arbejdskø, database, cache, sessionsmanager, meddelelsesmægler og mere.

Kombinationen af ​​Redis' hastighed, alsidighed og brugervenlighed gør det til et meget værdifuldt værktøj i softwareudviklerens økosystem.

Hvornår skal du bruge Redis?

Redis er velegnet til mange opgaver, men du skal være forsigtig med kun at bruge det, når det giver mening at gøre det.

Du bør overveje at bruge Redis i disse scenarier:

  • Caching: Redis er den mest populære måde at implementere en cache på for at forhindre belastning på databaser og forbedre den generelle ydeevne.
  • Sessionsledelse: Lagring og styring af brugersessioner til godkendelse og tilstandsstyring er meget let med Redis.
  • Midlertidig datalagring: Redis lader dig gemme data og slette dem automatisk efter et bestemt tidsrum. Dette gør det til et godt værktøj til at gemme midlertidige data som f.eks JSON-webtokens, jobkøer, etc.

Andre tilfælde, du bør overveje at bruge Redis til, omfatter implementering af en meddelelsesmægler, optimering databaseoperationer og endda effektiv lagring og adgang til datastrukturer som lister, sæt og hash.

Sådan bruges Redis med Node.js

Node.js er en populær teknologi til at bygge effektive og skalerbare apps på serversiden. Du kan bruge det sammen med understøttende teknologier som Redis for at opnå høj ydeevne og skalerbarhed.

Redis understøtter flere sprog. Du kan bruge det til datalagring i PHP og der er fremragende Redis-klienter til Golang. De to mest populære Redis-klienter til Node.js er node-redis og ioredis.

Begge pakker er tilgængelige via npm og er nemme at bruge. Den væsentligste forskel er det node-redis er den officielle klient, mens samfundet anbefaler ioredis.

Opretter forbindelse til Redis fra Node.js

For at komme i gang skal du have Redis installeret på din computer og et Node.js udviklingsmiljø opsat. Se installationsvejledningen på Redis.io for at installere Redis på Linux, macOS og Windows.

Du skal installere din foretrukne Redis-klient-SDK i dit projekt for at kunne oprette forbindelse til Redis. Afhængigt af dine præferencer (vi bruger node-redis), kør en af ​​kommandoerne nedenfor for at installere Redis-klienten:

npm installer redis --save
npm installer ioredis --save

Den første kommando installeres node-redis, mens den anden installeres ioredis.

For at konfigurere din nyligt installerede klient skal du sikre dig, at Redis kører. Du kan gøre dette ved blot at starte redis-cli i din terminal:

Det ping kommandoen pinger serveren for at bekræfte, at den kører, og en PONG svar i CLI betyder, at serveren fungerer fint. Opret nu en redis.js fil i dit Node-projekt og skriv følgende kode i det for at konfigurere Redis:

konst redis = kræve("redis")

// initialiser ved hjælp af standard config
konst RedisClient = redis.createClient()

konst connectRedis = asynkron () => {
// opret forbindelse til redis
vente RedisClient.connect()

// håndtere fejl
RedisClient.on('fejl', (fejl) => {
konsol.fejl(`Der opstod en fejl med Redis: ${err}`)
})

konsol.log("Genoprettet forbindelse...")
}

Ovenstående kode initialiserer en ny Redis-klient i applikationen. Det oprette klient Redis-pakkens funktion giver dig mulighed for at oprette en klient ved hjælp af dine angivne parametre.

Du kan angive din vært, port, brugernavn, adgangskode eller forbindelsesstreng eller bruge standardværdierne. For eksempel, node-redis vil begynde at køre på localhost, på port 6379, som standard.

Her er et par måder, du kan bruge oprette klient fungere:

// ved hjælp af forbindelsesstreng
konst RedisClient = redis.createClient("rediss://127.0.0.1:6379")

// ved hjælp af parameterobjekt
konst RedisClient = redis.createClient({
stik: {
vært: "127.0.0.1",
Havn: "6379"
},
brugernavn: "dit redis brugernavn",
adgangskode: "dit kodeord"
})

Brug sikre Redis-instanser i produktionen. Når dette er tilfældet, har du enten en sikker URL streng til forbindelse eller brug parametrene vist ovenfor. Uanset hvad der er tilfældet, husk altid at holde legitimationsoplysninger ude af koden, og brug miljøvariabler i stedet for.

Udførelse af grundlæggende Redis-handlinger i Node.js

Følgende kode forbinder til Redis ved hjælp af forbindeRedis funktionen ovenfor og viser nogle grundlæggende handlinger, du kan udføre i Redis fra dine Node-applikationer.

konst testRedis = asynkron () => {
vente connectRedis()

// Indstil og hent en værdi
vente RedisClient.set("navn", "Timmy")
konst getCommand = vente RedisClient.get("navn")
konsol.log (getCommand)

// Slet værdier med det samme, eller planlæg dem til at udløbe
// på et antal sekunder
vente RedisClient.del("navn");
vente RedisClient.setEx("Beliggenhed", 60, "Lagos")

// Skub ind på forsiden eller bagsiden af ​​en liste
vente RedisClient.lPush("dage", "Mandag")
vente RedisClient.rPush("dage", "tirsdag")
vente RedisClient.lPush("dage", "onsdag")
konst daysArray = vente RedisClient.lRange("dage", 0, -1)
// udskriver [ 'onsdag', 'mandag', 'tirsdag' ]
konsol.log (daysArray)

// Fjern et element fra bagsiden eller forsiden af ​​en liste
vente RedisClient.rPop("dage")
vente RedisClient.lPop("dage")
konst newDaysArray = vente RedisClient.lRange("dage", 0, -1)
// udskriver [ 'mandag' ]
konsol.log (newDaysArray)
}

testRedis()

Læg mærke til brugen af asynkron og vente her. Dette skyldes, at alle funktionerne kører asynkront og giver løfter, så hvis du har brug for deres resultater med det samme, er det vigtigt at vente dem.

Ovenstående kode viser kun nogle grundlæggende handlinger, du kan udføre i Redis fra en Node.js-applikation. Der er mange flere kommandoer og koncepter, som er værd at se på.

Det Redis kommandoer afsnittet i README findes på node-redis'erGitHub repository er et godt sted at finde alle de andre kommandoer og hvad de gør.

Brug Redis til at bygge effektive applikationer

Udnyttelse af kraften i Redis gør det muligt for dig som udvikler at bygge højeffektive server-side applikationer. Med Redis' datalagring i hukommelsen og omfattende datastrukturer og kommandoer kan applikationer opnå bemærkelsesværdige optimeringer af ydeevnen.

Du bør bestemt overveje at integrere Redis i din næste Node.js-applikation for at øge din apps ydeevne og levere en bedre brugeroplevelse.