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/