在RedisCluster中Debug lua 脚本.md
在使用单实例Redis时, 我们可以使用./redis-cli -h redis_ip -p redis 6379 --ldb --eval script.lua somekey , arg1 arg2命令轻松的进入debug模式调试lua脚本
在正常情况下, 进入debug模式后可以使用一系列命令来执行控制脚本的执行, 使用help命令应该可以看到如下界面
1 | lua debugger> help |
但是如果你使用的是redis cluster, 当你执行debug后, 大概率会看到如下内容
1 | Lua debugging session started, please use: |
通常你还会看到lua脚本的输出,但是却无法设置任何debug或者断点
即使你输入help, 也只是会看到如下报错, 这种情况下所有的debug命令都无法使用
1 | lua debugger> help |
造成这种现象的原因是你登陆的节点不包含key所属的slot,
解决方法也很简单, 根据consloe输出的MOVED 6918 127.0.0.1:6001指令, 使用redis-cli直接连接对应的redis node就可以顺利进入debug模式。
如果丢失了一开始的输出, 可以在界面中执行get操作, 就可以再次看到MOVED关键字。
1 | lua debugger> get somekey |
重新连接后即可看到正常输出
1 | Lua debugging session started, please use: |