You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lua中调用Redis HSET含空格值时参数错误的问题咨询

在Lua脚本中正确使用HSET存储带空格的值

问题原因

你当前的写法错误在于把key field1 'val1 val2'作为单个字符串参数传递给redis.call,Redis的HSET命令要求至少传入3个独立参数(键名、字段名、字段值),这种写法导致参数数量严重不足,触发Wrong number of args错误。

解决方案

Lua脚本中调用Redis命令时,每个参数需要单独传递,带空格的值直接作为普通Lua字符串传入即可,不需要额外加单引号包裹(单引号只会成为值的一部分)。

正确的写法示例:

redis.call("HSET", "mykey", "field1", "val1 val2")

如果需要一次性设置多个字段值,同样按顺序逐个传递参数:

redis.call("HSET", "mykey", "field1", "val1 val2", "field2", "hello world")

为什么telnet的+x方案不适用这里

telnet中使用+x是因为telnet默认会将空格作为参数分隔符,+x用于关闭这个行为,让整个带空格的字符串被当作单个参数。但Lua脚本中参数是通过逗号分隔的独立Lua值,字符串内部的空格不会被Redis解析为参数分隔符,因此不需要类似处理。

内容的提问来源于stack exchange,提问作者Sujay Biradar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 06:13:13