小编Jas*_*ood的帖子

如何从Redis Lua脚本输出到控制台?

为什么这不打印'你好'?

$ 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)

lua redis jedis

9
推荐指数
1
解决办法
4542
查看次数

标签 统计

jedis ×1

lua ×1

redis ×1