diff --git a/src/redis.c b/src/redis.c index 4f6de4ff..29ab6dd4 100644 --- a/src/redis.c +++ b/src/redis.c @@ -1564,9 +1564,9 @@ int freeMemoryIfNeeded(void) { mem_used -= obuf_bytes; } } - if (server.aof_state != REDIS_AOF_OFF) { - mem_used -= sdslen(server.aof_buf); - mem_used -= sdslen(server.aof_rewrite_buf); + if (server.appendonly) { + mem_used -= sdslen(server.aofbuf); + mem_used -= sdslen(server.bgrewritebuf); } /* Check if we are over the memory limit. */ diff --git a/src/redis.h b/src/redis.h index 3b372636..e93916c3 100644 --- a/src/redis.h +++ b/src/redis.h @@ -716,6 +716,7 @@ void getClientsMaxBuffers(unsigned long *longest_output_list, sds getClientInfoString(redisClient *client); sds getAllClientsInfoString(void); void rewriteClientCommandVector(redisClient *c, int argc, ...); +unsigned long getClientOutputBufferMemoryUsage(redisClient *c); void flushSlavesOutputBuffers(void); #ifdef __GNUC__