Redis 的 RPUSH
可直接針對 List 新增 Element,亦可使用 Node Redis 的 rpush()
。
Version
macOS Catalina 10.15.3
WebStorm 2019.3.4
Redis 5.0.6
Node Redis 2.8.0
Command
$ rpush mylist 'hello'
$ rpush mylist 'world'
$ lrange mylist 0 -1
- 使用
rpush
對mylist
key 新增 element - 使用
lrange
顯示mylist
,0
為開始 index,-1
為結束 index
Node
import { createClient } from 'redis'
import { promisify } from 'util'
let myRedis = createClient({
host: 'localhost',
port: 6379
})
let redisRpush = promisify(myRedis.rpush).bind(myRedis)
let redisLrange = promisify(myRedis.lrange).bind(myRedis)
redisRpush('mylist', 'hello')
redisRpush('mylist', 'world')
redisLrange('mylist', 0, -1).then(console.log)
第 9 行
let redisRpush = promisify(myRedis.rpush).bind(myRedis)
let redisLrange = promisify(myRedis.lrange).bind(myRedis)
使用 promisify()
將 rpush()
與 orange()
從 callback 轉成回傳 promise。
12 行
redisRpush('mylist', 'hello')
使用 redisRpush()
對 mylist
key 新增 hello
。
14 行
redisLrange('mylist', 0, -1).then(console.log)
使用 redisLrange()
顯示 mylist
所有資料,回傳為 array promise。
Conclusion
- Node Redis 所提供的
rpush()
與lrange()
為 callback based,可使用promisify()
轉成 promise based - 由於
lrange()
回傳多筆資料,因此為 array promise