]> git.saurik.com Git - redis.git/commitdiff
Don't expire keys while loading AOF.
authorHampus Wessman <hampus.wessman@gmail.com>
Sun, 3 Jul 2011 10:18:44 +0000 (12:18 +0200)
committerantirez <antirez@gmail.com>
Thu, 7 Jul 2011 14:08:30 +0000 (16:08 +0200)
They will be expired (and a DEL will be logged) after the loading is done
instead.

src/db.c

index a02f30438d6212ca03d6fba203e92e8256a68718..47994df20eb7bcfb6fce90f890cbc163bfb401b3 100644 (file)
--- a/src/db.c
+++ b/src/db.c
@@ -476,6 +476,9 @@ int expireIfNeeded(redisDb *db, robj *key) {
 
     if (when < 0) return 0; /* No expire for this key */
 
+    /* Don't expire anything while loading. It will be done later. */
+    if (server.loading) return 0;
+
     /* If we are running in the context of a slave, return ASAP:
      * the slave key expiration is controlled by the master that will
      * send us synthesized DEL operations for expired keys.
@@ -513,7 +516,7 @@ void expireGenericCommand(redisClient *c, robj *key, robj *param, long offset) {
         addReply(c,shared.czero);
         return;
     }
-    if (seconds <= 0) {
+    if (seconds <= 0 && !server.loading) {
         if (dbDelete(c->db,key)) server.dirty++;
         addReply(c, shared.cone);
         signalModifiedKey(c->db,key);