【发布时间】:2015-08-12 09:53:57
【问题描述】:
我正在尝试使用 lua 脚本删除,但我不知道出了什么问题
import redis
r = redis.Redis(host='localhost',port=6379)
pipe = r.pipeline(transaction = False)
lua = """
local env = redis.call('smembers', 'user_key')
redis.call('zrem','another_key', unpack(env))
"""
p = r.register_script(lua)
p(client=pipe)
【问题讨论】:
-
我在您的代码中看不到任何集合,但您可以减去集合,即
{1,2,3,4,5} - {3,4,5,6,7}会给您{1,2} -
你能更清楚地解释这里的问题吗?到底出了什么问题?这里的 python 包装是否与问题有关?
-
local是 Lua 中的关键字(也缺少逗号)。也许这就是问题所在...... -
是的,我知道 local 是保留关键字,在发布问题时我犯了错误,请立即检查
-
可能你的 Redis 太旧了。 documentation for ZREM 声明您只能在 Redis 2.4 及更高版本上传递多个参数。