]> git.saurik.com Git - redis.git/blobdiff - src/rdb.c
The universe is 80 columns wide, accept it.
[redis.git] / src / rdb.c
index 77e2a04809113a0018a64b0613d3acea06b299c9..3a10e0cec012d9425b666a89d8201b251d43bd68 100644 (file)
--- a/src/rdb.c
+++ b/src/rdb.c
@@ -1026,8 +1026,12 @@ int rdbLoad(char *filename) {
         if ((key = rdbLoadStringObject(&rdb)) == NULL) goto eoferr;
         /* Read value */
         if ((val = rdbLoadObject(type,&rdb)) == NULL) goto eoferr;
-        /* Check if the key already expired */
-        if (expiretime != -1 && expiretime < now) {
+        /* Check if the key already expired. This function is used when loading
+         * an RDB file from disk, either at startup, or when an RDB was
+         * received from the master. In the latter case, the master is
+         * responsible for key expiry. If we would expire keys here, the
+         * snapshot taken by the master may not be reflected on the slave. */
+        if (server.masterhost == NULL && expiretime != -1 && expiretime < now) {
             decrRefCount(key);
             decrRefCount(val);
             continue;