以Redis分布式锁解锁lua脚本为例:
# lock.lua
redis.debug(KEYS[1],ARGV[1])
if redis.call('get', KEYS[1]) == ARGV[1] then
return redis.call('del', KEYS[1])
else
return 0
end
执行lua(注意参数key后面的空格):
shell> redis-cli --eval lock.lua test , abc
使用ldb调试lua:
# 异步执行 操作回滚
shell> redis-cli --ldb --eval lock.lua test , abc
# 同步执行 操作不会滚
shell> redis-cli --ldb-sync-mode --eval lock.lua test , abc
常用调试命令:
# 帮助
lua debugger> h
# 执行当前行
lua debugger> s/n
# 展示当前行前后代码
lua debugger> l
# 打印变量
lua debugger> p test
调试函数:
redis.debug()
redis.breakpoint()
网友评论