如何在节点js中知道redis中给定键的值的类型

时间:2017-02-13 06:04:28

标签: node.js redis node-redis

我正在使用redis和节点js做一个小项目 - redis client' node_redis'。 问题是,要获取键值,有不同的get函数,比如string和integer类型,有client.get,对于数组类型,有client.lrange()等。 那么如果不知道所需的值类型,如何识别用于获取值的函数,有没有办法识别值类型。

2 个答案:

答案 0 :(得分:4)

使用TYPE命令。

承诺:

const Promise = require('bluebird')
const redis = Promise.promisifyAll(require('redis'))
const client = redis.createClient()
client.on("error", err => console.log("Error " + err))

client.typeAsync('foo').then(res => {
  console.log('type: "%s"', res)
})
.finally(()=> {
  client.quit()
})

使用回调:

const redis = require('redis')
const client = redis.createClient()
client.on("error", err => console.log("Error: %s", err))

client.type('foo', (err, res) =>{
  if (err) return console.log('Error: %s', err)
  console.log('type: "%s"', res)
  client.quit()
})

答案 1 :(得分:0)

通常,您的应用程序应事先知道使用给定密钥名称访问的值的类型。也就是说,可以使用Redis TYPE来检查给定键的类型。