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

Node.js 如何知道节点js中redis中给定键的值类型,node.js,redis,node-redis,Node.js,Redis,Node Redis,我正在使用redis和节点js-redis客户端“”执行一个小项目。 问题是,要获取键的值,有不同的get函数,比如字符串和整数类型有client.get,数组类型有client.lrange()等。 因此,如果所需的值类型未知,如何确定使用什么函数来获取值,是否有方法来确定值类型 通常,应用程序应该提前知道使用给定的键名访问的值的类型。也就是说,您可以使用Redis来检查给定密钥的类型。通常您的应用程序应该提前知道使用给定密钥名访问的值的类型。也就是说,您可以使用Redis检查给定密钥的类型。

我正在使用redis和节点js-redis客户端“”执行一个小项目。 问题是,要获取键的值,有不同的get函数,比如字符串和整数类型有client.get,数组类型有client.lrange()等。
因此,如果所需的值类型未知,如何确定使用什么函数来获取值,是否有方法来确定值类型

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

通常您的应用程序应该提前知道使用给定密钥名访问的值的类型。也就是说,您可以使用Redis检查给定密钥的类型。

使用该命令

承诺:

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()
})
使用命令

承诺:

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()
})

有没有一种方法可以通过同步来实现?例如:var type=client.type('foo')@MikeBrianOlivera我不知道,有几种通用方法可以将异步api转换为同步,但通常不应该使用同步方法,因为它们会在访问redis时阻止进程。请帮我一下,这是用于测试模式的。我尝试了你的代码,但没有返回任何结果:(@MikeBrianOlivera对你尝试的代码提出了疑问,你得到了什么/expected是否有办法使用sync实现它?例如:var type=client.type('foo'))@MikeBrianOlivera我不知道,有几种通用的方法可以将异步api转换为同步,但您通常不应该使用同步方法,因为它们会在访问redis时阻止进程。请帮我一下,这是用于测试模式。我尝试了您的代码,但没有返回任何结果:(@MikeBrianOlivera用你尝试过的代码和你得到/期望的东西来提问