Ruby 如何查看redis存储的lua脚本(用于调试)?

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

我需要调试的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 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