Ruby 如何查看redis存储的lua脚本(用于调试)?
我需要调试的redis脚本(来自ruby“Qless”gem)中有一个错误:Ruby 如何查看redis存储的lua脚本(用于调试)?,ruby,lua,redis,Ruby,Lua,Redis,我需要调试的redis脚本(来自ruby“Qless”gem)中有一个错误: ruby/gems/1.9.1/gems/redis-3.0.7/lib/redis/client.rb:97:in `call': ERR Error running script (call to f_f7526d197070c9e82c28fad331b4c020585aad20): user_script:33: bad argument #1 to 'decode' (string expected, got
ruby/gems/1.9.1/gems/redis-3.0.7/lib/redis/client.rb:97:in `call': ERR Error running script (call to f_f7526d197070c9e82c28fad331b4c020585aad20): user_script:33: bad argument #1 to 'decode' (string expected, got boolean) (Redis::CommandError)
如何将
f_f7526D197070C9E82C28FAD3131B4C020585AAD20
映射回此Qless库定义的代码?手动将Qless中的每个(大约30个)LUA脚本复制粘贴到redis cli并查看哪个对应于sha的最佳方法是什么?(我希望有更好的方法?我最终将调试信息添加到Qless::LuaScript#reload
方法中(暂时在gem内部):
这将在调用时提供SHA,因此当显示上述错误时,LUA源代码也可以在定义脚本的滚动日志的上方某处看到。这是可能的,但不是微不足道的 你可以用 执行
配置集appendonly yes
,压缩AOF,执行脚本,查看AOF文件的内容。你的完整脚本在那里
希望这有帮助,TW
def reload()
@sha = @redis.script(:load, script_contents)
puts @sha
puts script_contents
puts '-----'
@sha
end