Jedną z najpopularniejszych bibliotek do pracy z serwerem Redis z aplikacji Node.js jest node-redis , dostępny pod adresem https://github.com/NodeRedis/node-redis.
Zainstaluj bibliotekę w swoim projekcie:
npm install redis
Wskazówka:nie zapomnij najpierw uruchomić npm init -y jeśli projekt jest nowy i nie masz pliku package.json plik już.
Połącz z instancją Redis
Gdy biblioteka zostanie zainstalowana, wymagaj jej w swoim projekcie za pomocą
const redis = require('redis') lub
import redis from 'redis'
Gdy masz redis obiekt, utwórz nowego klienta za pomocą
const client = redis.createClient({
url: 'redis://YOUR REDIS INSTANCE URL'
}) i połącz się za pomocą (wewnątrz funkcji asynchronicznej):
await client.connect() Gdy już masz klienta, możemy wykonywać wszystkie rzeczy, o których wiemy, że potrafi Redis.
Aby zakończyć połączenie, zadzwoń:
client.quit() Przechowuj i pobieraj wartości kluczy
Przechowuj parę klucz-wartość w redis za pomocą set() :
client.set("<key>", "<value>") Przykład:
client.set("name", "Flavio")
client.set("age", 37)
Jeśli uruchomisz KEYS * w redis-cli na czystym serwerze Redis zobaczysz dwa klawisze:

Możesz uzyskać wartość przechowywaną w kluczu za pomocą get() :
const value = await client.get("name") Usuń ciąg klucz/wartość za pomocą
client.del("names") Praca z listami
W Redis możemy pracować z listami za pomocą
LPUSHRPUSHLTRIMLRANGE
polecenia, które wprowadziliśmy w module Redis. Są mapowane bezpośrednio jako client metody obiektowe.
Utwórz listę za pomocą
client.lPush('names', 'Flavio') Przesuń nowy element na dół listy:
client.rPush('names', 'Roger') Lub na górze listy:
client.lPush('names', 'Syd') Wymień wszystkie pozycje na liście za pomocą:
const result = await client.lRange('names', 0, -1)
//result is [ 'Roger', 'Flavio', 'Syd' ]
Upuść elementy z listy za pomocą
client.rPop('names') Usuń listę za pomocą
client.del('names') Praca z zestawami
W Redis pracujemy z zestawami za pomocą
SADDSPOPSMEMBERS.
i inne polecenia Redis, które są mapowane bezpośrednio jako client metody obiektowe.
Utwórz zestaw za pomocą
client.sAdd('names', 'Flavio') Dodaj więcej elementów do zestawu:
client.sAdd('names', 'Roger') Możesz dodać kilka naraz:
client.sAdd('names', 'Roger', 'Syd') również przez przekazanie tablicy:
const names = ['Flavio', 'Roger', 'Syd']
client.sAdd('names', names) Wymień wszystkie elementy w zestawie za pomocą:
const names = await client.sMembers('names') Upuść losowy przedmiot z zestawu za pomocą:
client.sPop('names') Dodaj drugi parametr, aby upuścić wiele losowych przedmiotów:
client.sPop('names', 3) Usuń zestaw za pomocą
client.del('names') Praca z hashami
W Redis pracujemy z hashami za pomocą zestawu poleceń, które zawierają
HMSETHGETALLHSETHINCRBY.
i inne polecenia, które wprowadziliśmy w module Redis, które są mapowane bezpośrednio jako client metody obiektowe.
Utwórz skrót za pomocą
client.hSet('person:1', 'name', 'Flavio', 'age', 37) Aby uzyskać wszystkie właściwości użytkownika, użyj HGETALL:
const items = client.hGetAll('person:1') Możesz zaktualizować właściwość hash za pomocą HSET:
client.hSet('person:1', 'age', 38) Możesz zwiększyć wartość przechowywaną w hashu za pomocą HINCRBY:
client.hIncrBy('person:1', 'age', 1) Usuń skrót za pomocą
client.del('person:1') Subskrypcje
Subskrypcje to niesamowita funkcja Redis, która umożliwia nam robienie naprawdę wymyślnych rzeczy w Node.js.
Wydawca wysyła wiadomość na kanale. Otrzymuje go wielu subskrybentów.
Subskrybuj kanał za pomocą
await subscriber.subscribe('dogs', (message) => {
console.log(message);
})
Opublikuj na kanale za pomocą client.publish('<channel>', '<message>')
client.publish('dogs', 'Roger')
Pamiętaj, że nie możesz publikować i subskrybować od tego samego client przykład.
Aby to zrobić w tej samej aplikacji, utwórz 2 klientów:
const subscriber = redis.createClient({ ... })
const publisher = redis.createClient({ ... })
await subscriber.subscribe('dogs', (message) => {
console.log(channel, message);
})
publisher.publish('dogs', 'Roger')