Redis 的 MSET
與 MGET
可同時設定多筆 Key / Value Pair,亦可使用 Node Redis 的 mset()
與 mget()
。
Version
macOS Catalina 10.15.3
WebStorm 2019.3.4
Redis 5.0.6
Node Redis 2.8.0
Command
$ mset title "FP in JavaScript" price 100
$ mget title price
- 使用
MSET
一次設定title
與price
兩個 key - 使用
MGET
一次讀取title
與price
Node
import { createClient } from 'redis'
import { promisify } from 'util'
let myRedis = createClient({
host: 'localhost',
port: 6379
})
let redisMset = promisify(myRedis.mset).bind(myRedis)
let redisMget = promisify(myRedis.mget).bind(myRedis)
redisMset('title', 'FP in JavaScript', 'price', 100).then(console.log)
redisMget('title', 'price').then(console.log)
第 9 行
let redisMset = promisify(myRedis.mset).bind(myRedis)
let redisMget = promisify(myRedis.mget).bind(myRedis)
使用 promisify()
將 mset()
與 mget()
從 callback 轉成回傳 promise。
12 行
redisMset('title', 'FP in JavaScript', 'price', 100).then(console.log)
使用 redisMSet()
寫入 title
與 price
兩個 key,若成功將回傳 OK
promise。
13 行
redisMget('title', 'price').then(console.log)
使用 redisMget()
讀出 title
與 price
兩個 key,回傳為 array promise。
Conclusion
- Node Redis 所提供的
mset()
與mget()
為 callback based,可使用promisify()
轉成 promise based - 由於
mget()
可一次取出多個 key,因此回傳為 array promise