Clayton

  • Apr 30, 2020
  • Joined Apr 29, 2020
  • 已解决 。希望给碰到同样的人提供一点帮助
    因我的redis经历了输入密码 选库 所有会有两个ok。不可以使用parse_reply。要用parse_replies.
    n 代表 redis 执行过的内容
    最后一个reply[1] 是redisget取出来的值。 赋值nginx变量。

    n = {
    {"auth","XX"},
    {"select",X},
    {"get",XX}
    }

                local results = parser.parse_replies(res.body,#n)
                for i, reply in ipairs(results) do
                    ngx.var.target =  reply[1]
                end
  • local parser = require "redis.parser"
    local server, typ = parser.parse_reply(res.body)
    if typ ~= parser.BULK_REPLY or not server then
        ngx.log(ngx.ERR, "bad redis response: ", res.body)
        ngx.exit(500)
    end

    parser.parse_reply 并没有成功解析redis的返回

    nginx日志

    2020/04/29 11:38:58 [error] 13159#0: *56 [lua] access_by_lua(nginx.conf:109):24: bad redis response: +OKM
    +OKM
    $6M
    media2M