Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Cara menggunakan Redis dari Node.js

Salah satu perpustakaan paling populer untuk bekerja dengan server Redis dari aplikasi Node.js adalah node-redis , tersedia di https://github.com/NodeRedis/node-redis.

Instal perpustakaan di proyek Anda:

npm install redis

Tip:jangan lupa untuk menjalankan npm init -y terlebih dahulu jika proyek tersebut baru dan Anda tidak memiliki package.json file sudah.

Hubungkan ke instance Redis

Setelah perpustakaan terinstal, wajibkan dalam proyek Anda menggunakan

const redis = require('redis')

atau

import redis from 'redis'

Setelah Anda memiliki redis objek, buat klien baru menggunakan

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

dan hubungkan menggunakan (di dalam fungsi asinkron):

await client.connect()

Setelah Anda memiliki klien, kami dapat melakukan semua hal yang kami tahu dapat dilakukan oleh Redis.

Untuk menutup koneksi, hubungi:

client.quit()

Menyimpan dan mengambil nilai kunci

Simpan pasangan nilai kunci ke dalam redis menggunakan set() :

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

Contoh:

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

Jika Anda menjalankan KEYS * di redis-cli di server Redis yang bersih, Anda akan melihat dua kunci muncul:

Anda bisa mendapatkan nilai yang disimpan dalam kunci menggunakan get() :

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

Hapus string kunci/nilai menggunakan

client.del("names")

Bekerja dengan daftar

Di Redis kita dapat bekerja dengan daftar menggunakan

  • LPUSH
  • RPUSH
  • LTRIM
  • LRANGE

perintah yang kami perkenalkan di modul Redis. Mereka memetakan secara langsung sebagai client metode objek.

Buat daftar menggunakan

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

Dorong item baru ke bagian bawah daftar:

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

Atau di bagian atas daftar:

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

Daftar semua item dalam daftar menggunakan:

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

Jatuhkan item dari daftar menggunakan

client.rPop('names')

Hapus daftar menggunakan

client.del('names')

Bekerja dengan set

Di Redis kami bekerja dengan set menggunakan

  • SADD
  • SPOP
  • SMEMBERS .

dan perintah Redis lainnya, yang memetakan secara langsung sebagai client metode objek.

Buat satu set menggunakan

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

Tambahkan lebih banyak item ke set:

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

Anda dapat menambahkan beberapa sekaligus:

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

juga dengan melewatkan array:

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

Daftar semua item dalam satu set menggunakan:

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

Jatuhkan item acak dari satu set menggunakan:

client.sPop('names')

Tambahkan parameter kedua untuk menjatuhkan beberapa item acak:

client.sPop('names', 3)

Hapus kumpulan menggunakan

client.del('names')

Bekerja dengan hash

Di Redis kami bekerja dengan hash menggunakan serangkaian perintah yang menyertakan

  • HMSET
  • HGETALL
  • HSET
  • HINCRBY .

dan perintah lain yang kami perkenalkan di modul Redis, yang memetakan secara langsung sebagai client metode objek.

Buat hash menggunakan

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

Untuk mendapatkan semua properti pengguna, gunakan HGETALL:

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

Anda dapat memperbarui properti hash menggunakan HSET:

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

Anda dapat menambah nilai yang disimpan dalam hash menggunakan HINCRBY:

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

Hapus hash menggunakan

client.del('person:1')

Langganan

Langganan adalah fitur luar biasa dari Redis, yang mendorong kami untuk melakukan hal-hal yang sangat mewah di Node.js.

Penerbit mengirim pesan di saluran. Banyak pelanggan menerimanya.

Berlangganan saluran menggunakan

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

Publikasikan ke saluran menggunakan client.publish('<channel>', '<message>')

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

Ketahuilah bahwa Anda tidak dapat memublikasikan dan berlangganan dari client yang sama contoh.

Untuk melakukannya di aplikasi yang sama, buat 2 klien:

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. Seledri dengan beberapa situs Django

  2. Transaksi dan laporan tontonan di Redis

  3. Bagaimana saya bisa menguji apakah cache redis saya berfungsi?

  4. Django ValueError:Tidak ada rute yang ditemukan untuk jalur 'ws/chat//'

  5. Saat memulai bunga, saya mendapatkan yang berikut:dbm.error:tipe db adalah dbm.gnu, tetapi modul tidak tersedia