sql >> Databáze >  >> NoSQL >> Redis

Jak používat Redis z Node.js

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 -y pokud je projekt zcela nový a nemáte package.json soubor 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í

  • LPUSH
  • RPUSH
  • LTRIM
  • LRANGE

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í

  • SADD
  • SPOP
  • SMEMBERS .

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í

  • HMSET
  • HGETALL
  • HSET
  • HINCRBY .

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')

  1. Jak používat šifrování k ochraně dat MongoDB

  2. Jak promítnout index pole po rozvinutí pole pomocí agregačního rámce MongoDB

  3. Porozumění Meteor Publish / Subscribe

  4. Server MongoDB není přístupný v místní síti navzdory vazbě IP