Redis
 sql >> база данни >  >> NoSQL >> Redis

Как да използвате Redis от Node.js

Една от най-популярните библиотеки за работа със сървър Redis от приложение Node.js е node-redis , достъпен на https://github.com/NodeRedis/node-redis.

Инсталирайте библиотеката във вашия проект:

npm install redis

Съвет:не забравяйте първо да стартирате npm init -y ако проектът е чисто нов и нямате package.json файл вече.

Свържете се с екземпляра на Redis

След като библиотеката е инсталирана, изисквайте я във вашия проект с помощта на

const redis = require('redis')

или

import redis from 'redis'

След като имате redis обект, създайте нов клиент с помощта на

const client = redis.createClient({
  url: 'redis://YOUR REDIS INSTANCE URL'
})

и се свържете с помощта на (вътре в асинхронна функция):

await client.connect()

След като имате клиента, ние можем да изпълняваме всички неща, които знаем, че Redis може да направи.

За да затворите връзката, обадете се на:

client.quit()

Съхраняване и извличане на ключови стойности

Съхранявайте двойка ключови стойности в redis, като използвате set() :

client.set("<key>", "<value>")

Пример:

client.set("name", "Flavio")
client.set("age", 37)

Ако стартирате KEYS * в redis-cli на чист Redis сървър, ще видите да се показват двата ключа:

Можете да получите стойността, съхранена в ключ, като използвате get() :

const value = await client.get("name")

Изтрийте низ ключ/стойност с помощта на

client.del("names")

Работа със списъци

В Redis можем да работим със списъци с помощта на

  • LPUSH
  • RPUSH
  • LTRIM
  • LRANGE

команди, които въведохме в модула Redis. Те картографират директно като client обективни методи.

Създайте списък с помощта на

client.lPush('names', 'Flavio')

Натиснете нов елемент в края на списъка:

client.rPush('names', 'Roger')

Или в горната част на списъка:

client.lPush('names', 'Syd')

Избройте всички елементи в списък, като използвате:

const result = await client.lRange('names', 0, -1)
//result is [ 'Roger', 'Flavio', 'Syd' ]

Пуснете елементи от списък с помощта на

client.rPop('names')

Изтрийте списък с

client.del('names')

Работа с набори

В Redis работим с набори с помощта на

  • SADD
  • SPOP
  • SMEMBERS .

и други команди на Redis, които картографират директно като client обективни методи.

Създайте набор с

client.sAdd('names', 'Flavio')

Добавете още елементи към комплекта:

client.sAdd('names', 'Roger')

Можете да добавите няколко наведнъж:

client.sAdd('names', 'Roger', 'Syd')

също чрез предаване на масив:

const names = ['Flavio', 'Roger', 'Syd']
client.sAdd('names', names)

Избройте всички елементи в комплект, като използвате:

const names = await client.sMembers('names')

Пуснете произволен елемент от набор, като използвате:

client.sPop('names')

Добавете втори параметър, за да премахнете няколко произволни елемента:

client.sPop('names', 3)

Изтрийте набор с

client.del('names')

Работа с хешове

В Redis работим с хешове, използвайки набор от команди, които включват

  • HMSET
  • HGETALL
  • HSET
  • HINCRBY .

и други команди, които въведохме в модула Redis, които картографират директно като client обективни методи.

Създайте хеш с помощта на

client.hSet('person:1', 'name', 'Flavio', 'age', 37)

За да получите всички свойства на потребител, използвайте HGETALL:

const items = client.hGetAll('person:1')

Можете да актуализирате хеш свойство с помощта на HSET:

client.hSet('person:1', 'age', 38)

Можете да увеличите стойност, съхранена в хеш, като използвате HINCRBY:

client.hIncrBy('person:1', 'age', 1)

Изтрийте хеш с помощта на

client.del('person:1')

Абонаменти

Абонаментите са невероятна функция на Redis, която ни дава възможност да правим наистина фантастични неща в Node.js.

Издател изпраща съобщение в канал. Получават го множество абонати.

Абонирайте се за канал с помощта на

await subscriber.subscribe('dogs', (message) => {
  console.log(message);
})

Публикувайте в канал с помощта на client.publish('<channel>', '<message>')

client.publish('dogs', 'Roger')

Имайте предвид, че не можете да публикувате и да се абонирате от един и същ client пример.

За да направите това в същото приложение, създайте 2 клиента:

const subscriber = redis.createClient({ ... })
const publisher = redis.createClient({ ... })

await subscriber.subscribe('dogs', (message) => {
  console.log(channel, message);
})

publisher.publish('dogs', 'Roger')

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Java клиент за свързване на ElasticCache Redis Cache Node

  2. Как да получите съобщение за публикуване на Redis в Go

  3. Memcache v/s redis за поддържане на постоянни сесии?

  4. Как да зададете/получите рамки с данни на Pandas в Redis с помощта на pyarrow

  5. Как мога да изпълнявам команди в redis, без да получа никакъв отговор?