I know this is o=an older pull request, but:

style/performance nit:

    local sentinel  = redis:new()
    self:ctx().sentinel = sentinel
    local timeout = self:config_get("redis_timeout")
    if timeout then
        sentinel:set_timeout(timeout)
    end

Avoid multiple table lookups for the same key/value when possible, IMO. It seems small, but when the code gets ran several times a second, it adds up. 

Same comment applies to other areas of the code as well.