【问题标题】:Error while running Lua script from redis client从 redis 客户端运行 Lua 脚本时出错
【发布时间】:2016-02-05 12:59:09
【问题描述】:

我在 Lua 脚本中有“Hello World”程序。 我正在尝试从(Chocolatey)Redis 客户端调用脚本。 我不断收到此错误 (错误)ERR错误编译脚本(新函数):user_script:1:函数参数应靠近'。'

Redis 脚本:“hello.lua”

local msg = "Hello, world!"
return msg

Chocolatey Redis 客户端:

127.0.0.1:6379> EVAL "D:\hello.lua" 0

错误信息

(error) ERR Error compiling script (new function): user_script:1: function argument expected near '.'

【问题讨论】:

    标签: lua redis


    【解决方案1】:

    EVAL 接受脚本本身,而不是文件名。

    试试这个:

    EVAL 'local msg = "Hello, world!" return msg' 0
    

    编辑:要在文件中执行脚本,redis-cli 提供了--eval 开关,您可以按如下方式使用:

    redis-cli --eval <path-to-script-file> [key1 [key2] ...] , [arg1 [arg2] ...]
    

    我对 Windows fork 不熟悉,但它很可能也应该支持它。

    在*nix中,也可以使用shell将脚本的内容提供给cli,例如:

    redis-cli SCRIPT LOAD "$(cat path-to-script-file)"
    

    会将文件中的内容加载到 Redis。在 Windows 中应该有类似的方法来实现这一点,但这超出了我目前的范围;)

    【讨论】:

    • 感谢您的快速回复 Itamar。我终于可以看到输出了。我挣扎了很长时间。再次感谢你。您还可以帮助我如何从 redis 客户端调用 lua scipt 文件。如何将参数传递给文件并接受从脚本文件返回的值。
    • 我假设您使用 Windows cli 作为您的客户端 - 对吗?
    • 我使用Windows cmd中的“start redis-server”和“start redis-cli”命令分别启动Redis Server和Client。它们也是命令提示符,我尝试从该客户端获取数据。
    • @invincible 如果您觉得我的回答足够,请标记它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    • 2023-02-23
    • 1970-01-01
    • 2014-11-06
    • 2020-06-05
    • 1970-01-01
    • 2016-08-10
    相关资源
    最近更新 更多