【发布时间】:2020-03-18 20:18:04
【问题描述】:
我正在尝试将 Python dict 作为参数传递给 Lua 脚本,并将 HMSET 传递给脚本中的 Redis 键。
我有两个问题。
我应该如何将 dict 从 Python 传递到 Lua 脚本以及从 Lua 脚本传递到 Redis?
使用json.dumps() 将其传递给 Lua 似乎很简单。但是,如何将它转换回 Lua 中的 dict(或者我猜是 Lua 表?)(我不能在 Redis 的 EVAL 中使用 Lua 的 require)。
虽然我仍然不知道如何将真正的 dict 从 Lua 传递给 Redis,但我仍然在 Lua 脚本中使用 HMSET 并尝试为键分配一个字符串。
为什么会出现此错误:
redis.exceptions.ResponseError: Error running script (call to f_2591f0a1987b36dd027b752af3591c92be845cd4):
@user_script:7: @user_script: 7: Wrong number of args calling Redis command From Lua script
前提是我的 Lua 代码使用与我的 Python HMSET 相同数量的 args:
local key_name = KEYS[1]
redis.call('hmset', key_name, "some_val")
【问题讨论】:
标签: python redis lua nosql lua-table