點燈坊

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

如何在 Node 使用 Redis 的 HSET 與 HGET ?

Sam Xiao's Avatar 2020-03-20

Redis 的 HSETHGET 可設定 Hash 在 Key 內,亦可使用 Node Redis 的 hset()hget()

Version

macOS Catalina 10.15.3
WebStorm 2019.3.4
Redis 5.0.6
Node Redis 2.8.0

Command

$ hset book price 100
$ hget book price
  • 使用 HSET 設定 book key 與 price field
  • 使用 GET 讀取 book key 與 price field

hset000

Node

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

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

let redisHset = promisify(myRedis.hset).bind(myRedis)
let redisHget = promisify(myRedis.hget).bind(myRedis)

redisHset('book', 'price', 100)
redisHget('book', 'price').then(console.log)

第 9 行

let redisHset = promisify(myRedis.hset).bind(myRedis)
let redisHget = promisify(myRedis.hget).bind(myRedis)

使用 promisify()hset()hget() 從 callback 轉成回傳 promise。

12 行

redisHset('book', 'price', 100)

使用 redisHset() 寫入 key 與 field。

13 行

redisHget('book', 'price').then(console.log)

使用 redisHget() 讀出 key 與 field,回傳為 promise。

hset001

Conclusion

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

Reference

Redis, HSET
Redis, HGET