我问了this question,并根据答案重写了与此类似的代码:
await redis.hset(`origin-${originId}`, { title, status, location })
但是现在我得到一个错误,说: {ReplyError:'hset'命令的参数错误
我将我的Redis服务器升级到vesion 5.0.7。我应该如何解决这个问题?请帮我。
答案 0 :(得分:1)
hset
命令至少需要3个参数:哈希名称,键,值。
请参见the Redis documentation。您无法将JavaScript对象存储为Redis哈希。相反,您将需要扩展对象并使用hmset
命令。这样的事情会起作用。
await redis.hset(`origin-${originId}`, 'title', title, 'status', status, 'location', location);
如果您有一个大型对象,并且要一次设置许多键,则需要先将其展开。这样的事情会起作用:
await redis.hset(`origin-${originId}`, Object.entries(largeObject).flat());
编辑
看起来您现在可以use the hmset
command进入node-redis,而不必散布参数。因此,只需执行此操作就足够了:
await redis.hmset(`origin-${originId}`, largeObject);
此格式仅适用于hmset
命令,不适用于hset
命令。