【问题标题】:Node.js Redis client doesn't have Redis commandsNode.js Redis 客户端没有 Redis 命令
【发布时间】:2021-09-09 16:51:13
【问题描述】:

redis 包有问题。它的文档中有:

这个库是 Redis 命令的一对一映射。

但是我无法通过这个 lib 的客户端访问 Redis 命令。

我正在创建这样的客户端:

const client = createClient({
  socket: {
    host: process.env.REDIS_HOST,
    port: +process.env.REDIS_PORT!,
    password: process.env.REDIS_PASSWORD
  }
});

createClient 是这样导入的:import { createClient } from 'redis';

当我尝试在此客户端上调用任何 Redis 命令时,例如:

client.rpush('key', 'value');

我收到一个错误: this.client.rpush is not a function

console.log(Object.keys(client)); 的输出是:

[
  '_events',
  '_eventsCount',
  '_maxListeners',
  'select',
  'subscribe',
  'pSubscribe',
  'unsubscribe',
  'pUnsubscribe',
  'quit'
]

我做错了吗?我该如何解决?

【问题讨论】:

  • 这些“原始”客户端通常接受……嗯……原始 redis 命令,因此您可以尝试client.RPUSH。话虽如此,并查看您的客户,您似乎需要先做一些事情(连接)?您是否查看过客户 README 文件?

标签: node.js redis


【解决方案1】:

根据 README 文件中的Redis Commands 部分,

内置支持所有开箱即用的 Redis 命令。它们使用原始 Redis 命令名称(HSET、HGETALL 等)和更友好的驼峰式版本(hSet、hGetAll 等)公开:

所以,使用 rpush 命令作为 client.RPUSH('key', 'value');client.rPush('key', 'value');

【讨论】:

    猜你喜欢
    • 2014-01-20
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 2011-06-25
    • 2022-01-20
    相关资源
    最近更新 更多