Ett av de mest populära biblioteken att arbeta med en Redis-server från en Node.js-app är node-redis , tillgänglig på https://github.com/NodeRedis/node-redis.
Installera biblioteket i ditt projekt:
npm install redis Tips:glöm inte att först köra
npm init -yom projektet är helt nytt och du inte har enpackage.jsonfil redan.
Anslut till Redis-instansen
När biblioteket är installerat kräver du det i ditt projekt med
const redis = require('redis') eller
import redis from 'redis'
När du har redis objekt, skapa en ny klient med
const client = redis.createClient({
url: 'redis://YOUR REDIS INSTANCE URL'
}) och anslut med (inuti en asynkronfunktion):
await client.connect() När du väl har kunden kan vi utföra alla de saker vi vet som Redis kan göra.
För att stänga anslutningen, ring:
client.quit() Lagra och hämta nyckelvärden
Lagra ett nyckelvärdespar i redis med set() :
client.set("<key>", "<value>") Exempel:
client.set("name", "Flavio")
client.set("age", 37)
Om du kör KEYS * i redis-cli på en ren Redis-server kommer du att se de två nycklarna:

Du kan få värdet lagrat i en nyckel med get() :
const value = await client.get("name") Ta bort en nyckel-/värdesträng med
client.del("names") Arbeta med listor
I Redis kan vi arbeta med listor med hjälp av
LPUSHRPUSHLTRIMLRANGE
kommandon som vi introducerade i Redis-modulen. De mappar direkt som client objektmetoder.
Skapa en lista med
client.lPush('names', 'Flavio') Skjut ett nytt objekt längst ned i listan:
client.rPush('names', 'Roger') Eller högst upp på listan:
client.lPush('names', 'Syd') Lista alla objekt i en lista med:
const result = await client.lRange('names', 0, -1)
//result is [ 'Roger', 'Flavio', 'Syd' ]
Släpp objekt från en lista med
client.rPop('names') Ta bort en lista med
client.del('names') Arbeta med set
I Redis arbetar vi med set med
SADDSPOPSMEMBERS.
och andra Redis-kommandon, som mappar direkt som client objektmetoder.
Skapa en uppsättning med
client.sAdd('names', 'Flavio') Lägg till fler objekt i uppsättningen:
client.sAdd('names', 'Roger') Du kan lägga till flera samtidigt:
client.sAdd('names', 'Roger', 'Syd') även genom att skicka en array:
const names = ['Flavio', 'Roger', 'Syd']
client.sAdd('names', names) Lista alla objekt i en uppsättning med:
const names = await client.sMembers('names') Släpp ett slumpmässigt objekt från en uppsättning med:
client.sPop('names') Lägg till en andra parameter för att släppa flera slumpmässiga objekt:
client.sPop('names', 3) Ta bort en uppsättning med
client.del('names') Arbeta med hash
I Redis arbetar vi med hash med hjälp av en uppsättning kommandon som inkluderar
HMSETHGETALLHSETHINCRBY.
och andra kommandon som vi introducerade i Redis-modulen, som mappar direkt som client objektmetoder.
Skapa en hash med
client.hSet('person:1', 'name', 'Flavio', 'age', 37) För att få alla egenskaper för en användare, använd HGETALL:
const items = client.hGetAll('person:1') Du kan uppdatera en hash-egenskap med HSET:
client.hSet('person:1', 'age', 38) Du kan öka ett värde lagrat i en hash med HINCRBY:
client.hIncrBy('person:1', 'age', 1) Ta bort en hash med
client.del('person:1') Prenumerationer
Prenumerationer är en fantastisk funktion hos Redis, som gör att vi kan göra riktigt snygga saker i Node.js.
En utgivare skickar ett meddelande på en kanal. Flera prenumeranter får det.
Prenumerera på en kanal med
await subscriber.subscribe('dogs', (message) => {
console.log(message);
})
Publicera på en kanal med client.publish('<channel>', '<message>')
client.publish('dogs', 'Roger')
Tänk på att du inte kan publicera och prenumerera från samma client instans.
För att göra det i samma app, skapa två klienter:
const subscriber = redis.createClient({ ... })
const publisher = redis.createClient({ ... })
await subscriber.subscribe('dogs', (message) => {
console.log(channel, message);
})
publisher.publish('dogs', 'Roger')