Implement subkey expires for sorted sets
Former-commit-id: a45d141597e56b3e0e580d545122af4272692a1e
This commit is contained in:
parent
a9967659cd
commit
9f5d7d44c7
@ -111,8 +111,17 @@ void activeExpireCycleExpire(redisDb *db, expireEntry &e, long long now) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OBJ_LIST:
|
|
||||||
case OBJ_ZSET:
|
case OBJ_ZSET:
|
||||||
|
if (zsetDel(val,(sds)pfat->nextExpireEntry().spsubkey.get())) {
|
||||||
|
deleted++;
|
||||||
|
if (zsetLength(val) == 0) {
|
||||||
|
activeExpireCycleExpireFullKey(db, e.key());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OBJ_LIST:
|
||||||
default:
|
default:
|
||||||
serverAssert(false);
|
serverAssert(false);
|
||||||
}
|
}
|
||||||
@ -171,6 +180,7 @@ void expireMemberCore(client *c, robj *key, robj *subkey, long long basetime, lo
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double dblT;
|
||||||
switch (val->type)
|
switch (val->type)
|
||||||
{
|
{
|
||||||
case OBJ_SET:
|
case OBJ_SET:
|
||||||
@ -187,6 +197,13 @@ void expireMemberCore(client *c, robj *key, robj *subkey, long long basetime, lo
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case OBJ_ZSET:
|
||||||
|
if (zsetScore(val, szFromObj(subkey), &dblT) == C_ERR) {
|
||||||
|
addReply(c,shared.czero);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
addReplyError(c, "object type is unsupported");
|
addReplyError(c, "object type is unsupported");
|
||||||
return;
|
return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user