Jednou z nejoblíbenějších knihoven pro práci se serverem Redis z aplikace Node.js je node-redis , k dispozici na https://github.com/NodeRedis/node-redis.
Nainstalujte knihovnu do svého projektu:
npm install redis Tip:nezapomeňte nejprve spustit
npm init -ypokud je projekt zcela nový a nemátepackage.jsonsoubor již.
Připojit k instanci Redis
Jakmile je knihovna nainstalována, vyžádejte ji ve svém projektu pomocí
const redis = require('redis') nebo
import redis from 'redis'
Jakmile budete mít redis objekt, vytvořte nového klienta pomocí
const client = redis.createClient({
url: 'redis://YOUR REDIS INSTANCE URL'
}) a připojte se pomocí (uvnitř asynchronní funkce):
await client.connect() Jakmile budete mít klienta, můžeme provádět všechny věci, o kterých víme, že Redis umí.
Chcete-li spojení ukončit, zavolejte na číslo:
client.quit() Ukládání a načítání hodnot klíčů
Uložte pár klíč-hodnota do redis pomocí set() :
client.set("<key>", "<value>") Příklad:
client.set("name", "Flavio")
client.set("age", 37)
Pokud spustíte KEYS * v redis-cli na čistém serveru Redis uvidíte tyto dva klíče:

Hodnotu uloženou v klíči můžete získat pomocí get() :
const value = await client.get("name") Odstraňte řetězec klíč/hodnota pomocí
client.del("names") Práce se seznamy
V Redis můžeme pracovat se seznamy pomocí
LPUSHRPUSHLTRIMLRANGE
příkazy, které jsme zavedli v modulu Redis. Mapují přímo jako client objektové metody.
Vytvořte seznam pomocí
client.lPush('names', 'Flavio') Přesuňte novou položku na konec seznamu:
client.rPush('names', 'Roger') Nebo v horní části seznamu:
client.lPush('names', 'Syd') Vypište všechny položky v seznamu pomocí:
const result = await client.lRange('names', 0, -1)
//result is [ 'Roger', 'Flavio', 'Syd' ]
Odstraňte položky ze seznamu pomocí
client.rPop('names') Smažte seznam pomocí
client.del('names') Práce se sadami
V Redis pracujeme se sadami pomocí
SADDSPOPSMEMBERS.
a další příkazy Redis, které mapují přímo jako client objektové metody.
Vytvořte sadu pomocí
client.sAdd('names', 'Flavio') Přidejte do sady další položky:
client.sAdd('names', 'Roger') Můžete jich přidat více najednou:
client.sAdd('names', 'Roger', 'Syd') také předáním pole:
const names = ['Flavio', 'Roger', 'Syd']
client.sAdd('names', names) Vypište všechny položky v sadě pomocí:
const names = await client.sMembers('names') Vyhoďte náhodnou položku ze sady pomocí:
client.sPop('names') Chcete-li vypustit více náhodných položek, přidejte druhý parametr:
client.sPop('names', 3) Vymažte sadu pomocí
client.del('names') Práce s hodnotami hash
V Redis pracujeme s hashe pomocí sady příkazů, které zahrnují
HMSETHGETALLHSETHINCRBY.
a další příkazy, které jsme zavedli v modulu Redis, které mapují přímo jako client objektové metody.
Vytvořte hash pomocí
client.hSet('person:1', 'name', 'Flavio', 'age', 37) Chcete-li získat všechny vlastnosti uživatele, použijte HGETALL:
const items = client.hGetAll('person:1') Vlastnost hash můžete aktualizovat pomocí HSET:
client.hSet('person:1', 'age', 38) Hodnotu uloženou v hash můžete zvýšit pomocí HINCRBY:
client.hIncrBy('person:1', 'age', 1) Odstraňte hash pomocí
client.del('person:1') Předplatné
Předplatná jsou úžasnou funkcí Redis, která nám umožňuje dělat opravdu skvělé věci v Node.js.
Vydavatel odešle zprávu na kanál. Obdrží jej více odběratelů.
Přihlaste se k odběru kanálu pomocí
await subscriber.subscribe('dogs', (message) => {
console.log(message);
})
Publikovat do kanálu pomocí client.publish('<channel>', '<message>')
client.publish('dogs', 'Roger')
Uvědomte si, že nemůžete publikovat a odebírat ze stejného client instance.
Chcete-li tak učinit ve stejné aplikaci, vytvořte 2 klienty:
const subscriber = redis.createClient({ ... })
const publisher = redis.createClient({ ... })
await subscriber.subscribe('dogs', (message) => {
console.log(channel, message);
})
publisher.publish('dogs', 'Roger')