點燈坊

失くすものさえない今が強くなるチャンスよ

如何在 Node 使用 Redis 的 SET 與 GET ?

Sam Xiao's Avatar 2020-03-19

Redis 的 SETGET 可設定單筆 Key / Value Pair,亦可使用 Node Redis 的 set()get()

Version

macOS Catalina 10.15.3
WebStorm 2019.3.4
Redis 5.0.6
Node Redis 2.8.0

Command

$ set price 100
$ get price
  • 使用 SET 設定 key / value
  • 使用 GET 讀取 key

set001

Node

import { createClient } from 'redis'
import { promisify } from 'util'

let myRedis = createClient({
  host: 'localhost',
  port: 6379
})

let redisSet = promisify(myRedis.set).bind(myRedis)
let redisGet = promisify(myRedis.get).bind(myRedis)

redisSet('price', 100).then(console.log)
redisGet('price').then(console.log)

第 9 行

let redisSet = promisify(myRedis.set).bind(myRedis)
let redisGet = promisify(myRedis.get).bind(myRedis)

使用 promisify()set()get() 從 callback 轉成回傳 promise。

12 行

redisSet('price', 100).then(console.log)

使用 redisSet() 寫入 key,若成功將回傳 OK promise。

13 行

redisGet('price').then(console.log)

使用 redisGet() 讀出 key,回傳為 promise。

set000

Conclusion

  • Node Redis 所提供的 set()get() 為 callback based,可使用 promisify() 轉成 promise based

Reference

Redis, SET
Redis, GET