]> git.saurik.com Git - redis.git/commitdiff
FLUSHALL/FLUSHDB no longer sync on disk. Just increment the dirty counter by the...
authorantirez <antirez@gmail.com>
Tue, 21 Apr 2009 23:44:48 +0000 (01:44 +0200)
committerantirez <antirez@gmail.com>
Tue, 21 Apr 2009 23:44:48 +0000 (01:44 +0200)
redis.c

diff --git a/redis.c b/redis.c
index 7c382af74993d9b33059a6e0f82e5958fdd7a334..e74910ba093e45ed9b622925838e364397806a9e 100644 (file)
--- a/redis.c
+++ b/redis.c
@@ -875,13 +875,16 @@ static void initServer() {
 }
 
 /* Empty the whole database */
-static void emptyDb() {
+static long long emptyDb() {
     int j;
+    long long removed = 0;
 
     for (j = 0; j < server.dbnum; j++) {
+        removed += dictSize(server.db[j].dict);
         dictEmpty(server.db[j].dict);
         dictEmpty(server.db[j].expires);
     }
+    return removed;
 }
 
 /* I agree, this is a very rudimental way to load a configuration...
@@ -3038,18 +3041,17 @@ static void sunionstoreCommand(redisClient *c) {
 }
 
 static void flushdbCommand(redisClient *c) {
+    server.dirty += dictSize(c->db->dict);
     dictEmpty(c->db->dict);
     dictEmpty(c->db->expires);
-    server.dirty++;
     addReply(c,shared.ok);
-    rdbSave(server.dbfilename);
 }
 
 static void flushallCommand(redisClient *c) {
-    emptyDb();
-    server.dirty++;
+    server.dirty += emptyDb();
     addReply(c,shared.ok);
     rdbSave(server.dbfilename);
+    server.dirty++;
 }
 
 redisSortOperation *createSortOperation(int type, robj *pattern) {