]> git.saurik.com Git - redis.git/blobdiff - src/db.c
Support dual encoding in ZREM
[redis.git] / src / db.c
index 1f321c01a130fd1938cee786cea4268589b7db41..9daa5ddbd8a3da2c17f8465b7c5ac774e26b901a 100644 (file)
--- a/src/db.c
+++ b/src/db.c
@@ -527,6 +527,8 @@ void propagateExpire(redisDb *db, robj *key) {
 int expireIfNeeded(redisDb *db, robj *key) {
     time_t when = getExpire(db,key);
 
+    if (when < 0) return 0; /* No expire for this key */
+
     /* 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.
@@ -538,8 +540,6 @@ int expireIfNeeded(redisDb *db, robj *key) {
         return time(NULL) > when;
     }
 
-    if (when < 0) return 0;
-
     /* Return when this key has not expired */
     if (time(NULL) <= when) return 0;
 
@@ -592,6 +592,7 @@ void expireatCommand(redisClient *c) {
 void ttlCommand(redisClient *c) {
     time_t expire, ttl = -1;
 
+    if (server.ds_enabled) lookupKeyRead(c->db,c->argv[1]);
     expire = getExpire(c->db,c->argv[1]);
     if (expire != -1) {
         ttl = (expire-time(NULL));