【问题标题】:Loading lua script files in redis在redis中加载lua脚本文件
【发布时间】:2014-04-10 21:19:31
【问题描述】:

有人可以举例说明如何在 Windows 中加载和执行 .lua 脚本文件。我正在使用 ServiceStack redis 来加载luascript。它适用于某些没有类似模块(...)的脚本。

我收到了这个错误

Error compiling script (new function): user_script:5: cannot use '...' outside a 
vararg function near '...' , sPort: 61688, LastCommand:

非常感谢您提供示例的任何帮助。

提前致谢

【问题讨论】:

    标签: lua redis servicestack


    【解决方案1】:

    如果您发布了您尝试加载或执行的 Lua 脚本会有所帮助。

    三个点与模块无关:

    Vararg expressions, denoted by three dots ('...'), can only be used 
    when directly inside a vararg function
    

    我想这回答了你的问题:你的 Lua 代码是无效的。

    说到模块:你不能在 Redis Lua 中加载你自己的模块,你可能已经知道了。见http://redis.ioScripting

    【讨论】:

    • 我正在尝试将这个模块github.com/JakSprats/Alchemy-Database/blob/master/…加载到redis中
    • 啊哈。您尝试加载的 Lua 脚本来自 AlchemyDB,它基于大约三年前的 redis-unstable 分支。这与 Redis 本身的当前 native Lua 实现无关(据我所知)。也许有些想法已经交换了(几年前),但你正在把苹果和梨混合在一起。
    【解决方案2】:

    上述 Lua 脚本的解决方案是在函数或所有变量之前添加 local。我取出了模块的东西并调整了 Lua 脚本以使其工作。后来我意识到这个脚本对我没有任何用处:)。感谢您查看这篇文章。

    【讨论】:

    • 是的,这听起来很正确。 redis-lua 中禁止全局作用域。谢谢跟进。
    猜你喜欢
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 2017-03-08
    • 2020-11-08
    相关资源
    最近更新 更多