如何知道node js中redis中给定键的值类型

use*_*026 1 redis node.js node-redis

我正在使用 Redis 和 Node JS 做一个小项目 - Redis 客户端“ node_redis ”。问题是,要获取键的值,有不同的 get 函数,例如对于字符串和整数类型有 client.get,对于数组类型有 client.lrange() 等。那么如何确定使用哪个函数来获取value 如果所需的值类型未知,是否有办法识别值类型。

Mat*_*att 5

使用TYPE命令。

2022 redis v4 - ES 具有await

import { createClient } from 'redis'

async function go(){
  const client = createClient()
  client.on('error', console.error)
  await client.connect()

  const value = await client.TYPE('key')
}
Run Code Online (Sandbox Code Playgroud)

redis v3 承诺:

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()
})
Run Code Online (Sandbox Code Playgroud)

Redis v3 回调:

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()
})
Run Code Online (Sandbox Code Playgroud)