點燈坊

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

如何在 Node 使用 Redis 的 INCRBY ?

Sam Xiao's Avatar 2020-03-21

Redis 的 INCRBY 可直接針對 KEY 增加指定值,亦可使用 Node Redis 的 incrby()

Version

macOS Catalina 10.15.3
WebStorm 2019.3.4
Redis 5.0.6
Node Redis 2.8.0

Command

$ get price
$ incrby price 10
  • 使用 INCRBYprice key 增加 10

incrby000

Node

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

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

let redisIncrby = promisify(myRedis.incrby).bind(myRedis)
let redisGet = promisify(myRedis.get).bind(myRedis)

redisGet('price').then(console.log)
redisIncrby('price', 10).then(console.log)

第 9 行

let redisIncrby = promisify(myRedis.incrby).bind(myRedis)

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

13 行

redisIncrby('price', 10).then(console.log)

使用 redisIncrby()price key 直接新增 10,回傳為新增後結果的 promise。

incrby001

Conclusion

  • Node Redis 所提供的 incrby() 為 callback based,可使用 promisify() 轉成 promise based
  • incrby() 不只是對 key 增加 1 而已,而是可自行指定增加值

Reference

Redis, INCRBY