javascript - 如何替换node.js REDIS中已弃用的HMSET

标签 javascript node.js redis node-redis

Redis 命令 HMSET 已 deprecated从版本 4 开始。他们建议改用 HSET。但是当我尝试这样做时,我收到了不同的弃用警告。 我使用的是:db.hmset('key', {a: 1, b: 'c'})。现在我尝试用 db.hset 替换它,但这会触发:

node_redis: Deprecated: The HSET command contains a argument of type Object.
This is converted to "[object Object]" by using .toString() now and will return an error from v.3.0 on.
Please handle this in your code to make sure everything works as you intended it to.

在 Redis 数据库中存储对象的正确方法是什么?

Redis HSET 的文档指出:“从 Redis 4.0.0 开始,HSET 是可变参数,并且允许多个字段/值对。”我想存储整个对象,就像在数据库中使用 hmset 一样,而不是它的字符串表示形式。

最佳答案

如上所述here ,redis 客户端不支持命令参数中的对象。

要轻松地将对象存储在 Redis 中,您可以执行以下操作:

db.hset('key', ...Object.entries({a: 'a', b: 'b'}), (err) => {
  // ...
});

请注意,它会忽略 Symbol 键,并且仅适用于“平面对象”。

关于javascript - 如何替换node.js REDIS中已弃用的HMSET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66048159/

相关文章:

java - 用Spring在Redis存储库中查找

redis - 如何使用Redis Sentinel配置Airflow Celery执行器?

javascript - 防止浏览器在 HTML5 History popstate 上滚动

java - 为什么我收到消息 : "Unhandled event loop exception Java heap space" in Eclipse when using javascript autocomplete?

javascript - 为什么在声明这个javascript函数时参数中有大括号? ( Node ,model.js 中的 MongoDB)

javascript - .map 函数内的异步验证

javascript - promise 解决未定义,但数据仍已过帐

javascript - Redis 数据库设计不当

javascript - 根据对象过滤嵌套 JSON

javascript - 使用 jQuery 检查是否至少选中了一个复选框