Et af de mest populære biblioteker til at arbejde med en Redis-server fra en Node.js-app er node-redis , tilgængelig på https://github.com/NodeRedis/node-redis.
Installer biblioteket i dit projekt:
npm install redis
Tip:Glem ikke først at køre npm init -y hvis projektet er helt nyt, og du ikke har en package.json fil allerede.
Opret forbindelse til Redis-instansen
Når biblioteket er installeret, skal du kræve det i dit projekt ved hjælp af
const redis = require('redis') eller
import redis from 'redis'
Når du har redis objekt, skal du oprette en ny klient ved hjælp af
const client = redis.createClient({
url: 'redis://YOUR REDIS INSTANCE URL'
}) og opret forbindelse ved hjælp af (inde i en async-funktion):
await client.connect() Når først du har kunden, kan vi udføre alle de ting, vi ved, at Redis kan.
Ring til:
for at lukke forbindelsenclient.quit() Gem og hent nøgleværdier
Gem et nøgleværdipar i redis ved hjælp af set() :
client.set("<key>", "<value>") Eksempel:
client.set("name", "Flavio")
client.set("age", 37)
Hvis du kører KEYS * i redis-cli på en ren Redis-server, vil du se de to nøgler vises:

Du kan få værdien gemt i en nøgle ved hjælp af get() :
const value = await client.get("name") Slet en nøgle-/værdistreng ved hjælp af
client.del("names") Arbejde med lister
I Redis kan vi arbejde med lister ved hjælp af
LPUSHRPUSHLTRIMLRANGE
kommandoer, vi introducerede i Redis-modulet. De kortlægges direkte som client objektmetoder.
Opret en liste ved hjælp af
client.lPush('names', 'Flavio') Skub et nyt element til bunden af listen:
client.rPush('names', 'Roger') Eller øverst på listen:
client.lPush('names', 'Syd') Liste alle elementerne på en liste ved hjælp af:
const result = await client.lRange('names', 0, -1)
//result is [ 'Roger', 'Flavio', 'Syd' ]
Slip elementer fra en liste ved hjælp af
client.rPop('names') Slet en liste ved hjælp af
client.del('names') Arbejde med sæt
I Redis arbejder vi med sæt vha.
SADDSPOPSMEMBERS.
og andre Redis-kommandoer, der kortlægger direkte som client objektmetoder.
Opret et sæt ved hjælp af
client.sAdd('names', 'Flavio') Tilføj flere elementer til sættet:
client.sAdd('names', 'Roger') Du kan tilføje flere på én gang:
client.sAdd('names', 'Roger', 'Syd') også ved at sende et array:
const names = ['Flavio', 'Roger', 'Syd']
client.sAdd('names', names) Liste alle elementerne i et sæt ved hjælp af:
const names = await client.sMembers('names') Slip et tilfældigt element fra et sæt ved at bruge:
client.sPop('names') Tilføj en anden parameter for at slippe flere tilfældige elementer:
client.sPop('names', 3) Slet et sæt ved hjælp af
client.del('names') Arbejde med hashes
I Redis arbejder vi med hashes ved hjælp af et sæt kommandoer, der inkluderer
HMSETHGETALLHSETHINCRBY.
og andre kommandoer, vi introducerede i Redis-modulet, der kortlægger direkte som client objektmetoder.
Opret en hash ved hjælp af
client.hSet('person:1', 'name', 'Flavio', 'age', 37) For at få alle egenskaberne for en bruger, brug HGETALL:
const items = client.hGetAll('person:1') Du kan opdatere en hash-egenskab ved hjælp af HSET:
client.hSet('person:1', 'age', 38) Du kan øge en værdi gemt i en hash ved at bruge HINCRBY:
client.hIncrBy('person:1', 'age', 1) Slet en hash ved hjælp af
client.del('person:1') Abonnementer
Abonnementer er en fantastisk funktion ved Redis, der giver os mulighed for at gøre virkelig smarte ting i Node.js.
En udgiver sender en besked på en kanal. Flere abonnenter modtager det.
Abonner på en kanal ved hjælp af
await subscriber.subscribe('dogs', (message) => {
console.log(message);
})
Udgiv til en kanal ved hjælp af client.publish('<channel>', '<message>')
client.publish('dogs', 'Roger')
Vær opmærksom på, at du ikke kan udgive og abonnere fra den samme client eksempel.
For at gøre det i den samme app skal du oprette 2 klienter:
const subscriber = redis.createClient({ ... })
const publisher = redis.createClient({ ... })
await subscriber.subscribe('dogs', (message) => {
console.log(channel, message);
})
publisher.publish('dogs', 'Roger')