summaryrefslogtreecommitdiff
path: root/src/db.c
diff options
context:
space:
mode:
authorHampus Wessman <hampus.wessman@gmail.com>2011-07-03 12:18:44 +0200
committerantirez <antirez@gmail.com>2011-07-07 16:08:30 +0200
commit040b0ade7dd9d30210ec89182bbe4d416416ed53 (patch)
tree822747e90b18e74b807b5dea7c468533d41c02ec /src/db.c
parent72bae0cc75828f10d2d69923bb2d27ddc494107b (diff)
downloadredis-040b0ade7dd9d30210ec89182bbe4d416416ed53.tar.gz
Don't expire keys while loading AOF.
They will be expired (and a DEL will be logged) after the loading is done instead.
Diffstat (limited to 'src/db.c')
-rw-r--r--src/db.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/db.c b/src/db.c
index a02f30438..47994df20 100644
--- 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);