]> git.saurik.com Git - redis.git/commitdiff
Also remove size of AOF buffers from used memory when doing the math for freeMemoryIf...
authorantirez <antirez@gmail.com>
Mon, 6 Feb 2012 15:35:43 +0000 (16:35 +0100)
committerantirez <antirez@gmail.com>
Mon, 6 Feb 2012 15:35:43 +0000 (16:35 +0100)
src/redis.c

index 7b023dc576e6c812c5ec21c5f39d8a13ccbbd097..4b9ba618d570562a9c73c633d4d4fb6bcba2010a 100644 (file)
@@ -1802,8 +1802,8 @@ int freeMemoryIfNeeded(void) {
     size_t mem_used, mem_tofree, mem_freed;
     int slaves = listLength(server.slaves);
 
     size_t mem_used, mem_tofree, mem_freed;
     int slaves = listLength(server.slaves);
 
-    /* Remove the size of slaves output buffers from the count of used
-     * memory. */
+    /* Remove the size of slaves output buffers and AOF buffer from the
+     * count of used memory. */
     mem_used = zmalloc_used_memory();
     if (slaves) {
         listIter li;
     mem_used = zmalloc_used_memory();
     if (slaves) {
         listIter li;
@@ -1819,6 +1819,10 @@ int freeMemoryIfNeeded(void) {
                 mem_used -= obuf_bytes;
         }
     }
                 mem_used -= obuf_bytes;
         }
     }
+    if (server.aof_state != REDIS_AOF_OFF) {
+        mem_used -= sdslen(server.aof_buf);
+        mem_used -= sdslen(server.aof_rewrite_buf);
+    }
 
     /* Check if we are over the memory limit. */
     if (mem_used <= server.maxmemory) return REDIS_OK;
 
     /* Check if we are over the memory limit. */
     if (mem_used <= server.maxmemory) return REDIS_OK;