The redis_backend was missing is_write=true in attrs for store and delete
operations, causing lua_redis.request to use read_servers instead of
write_servers. This resulted in READONLY errors when read and write servers
are configured separately.
local attrs = {
ev_base = self.redis_params.ev_base,
config = self.config,
+ is_write = true,
callback = function(err)
if err then
lua_util.debugm(N, self.config, "redis SETEX failed for key %s: %s", key, err)
local attrs = {
ev_base = self.redis_params.ev_base,
config = self.config,
+ is_write = true,
callback = function(err)
if err then
lua_util.debugm(N, self.config, "redis DEL failed for key %s: %s", key, err)