Lua 连接 redis 服务器的困难

我在连接 redis 服务器时遇到了问题。我使用 luajit 安装了 redis-lua (2.0.4-1)luasocket (3.0rc1-2) 。我刚刚运行了 luarocks install redis-lua。当我调用 redis.connect 时,我收到错误消息:

Lua 5.1.5  版权所有 (C) 1994-2012 Lua.org, PUC-Rio
> local redis = require 'redis'
> local client = redis.connect('127.0.0.1', 6379)
stdin:1: attempt to index global 'redis' (a nil value)
stack traceback:
        stdin:1: in main chunk
        [C]: ?
>

我不知道为什么会这样…

点赞
用户1190388
用户1190388

当你在交互模式或通过脚本执行时会有区别。在交互式的 Lua shell 中,你的 local 变量/运行时作用域只局限于该特定执行级别。这就是为什么:

local redis = require 'redis'

这句代码只能在该语句行中提供 redis 变量。你必须在同一语句行中连接服务器:

> local redis = require 'redis'; local client = redis.connect('127.0.0.1', 6379); -- 所以其它语句

或者,在交互模式下,不使用 local 作用域即可。

2016-09-08 12:19:20