为什么这不打印'你好'?
$ redis-cli
127.0.0.1:6379> eval "print( 'hello' )" 0
(nil)
127.0.0.1:6379>
Run Code Online (Sandbox Code Playgroud)
在Mac OS X上运行2.8.14,在Windows 7上运行2.8.12.
我正在调用Jedis的Lua脚本.开发这些就像在船上装一个瓶子,戴着连指手套,而有人在打我的脸.我的最终目标是以某种方式通过打印跟踪语句,调试等来重新创建半功能开发堆栈.
我的解决方法是我的Lua脚本使用名为'log'的Redis列表,将其返回给Jedis,然后转储内容.有点像:
redis.call( 'del', 'log' )
redis.call( 'rpush', 'log', 'trace statement 1' )
redis.call( 'rpush', 'log', 'trace statement 2' )
...
redis.call( 'lrange', 'log', 0, -1 )
Run Code Online (Sandbox Code Playgroud)
提前感谢任何提示,帮助等.
更新:刚刚注意到'hello'通过终端窗口输出redis-server可执行文件.聪明.所以现在我为redis-server,redis-cli interactive和redis-cli监视器分别设置终端.
更新2:刚想通知我可以将跟踪语句打印到redis-cli监视器,如下所示:
eval "redis.call( 'echo', 'ugh')" 0
Run Code Online (Sandbox Code Playgroud)
看起来有点像这样:
123.456 [0 127.0.0.1:57709] "eval" "redis.call( 'echo', 'ugh')" "0"
123.456 [0 lua] "echo" "ugh"
Run Code Online (Sandbox Code Playgroud)
Jas*_*ood 12
面掌掌.终于想通了redis.log(loglevel,message).这也写入redis-server的控制台输出.
特别感谢有帮助的匿名选民.你是一个优秀的人类.