mirror of
https://github.com/fluencelabs/redis
synced 2025-03-30 22:31:03 +00:00
for (p)expireat use absolute time, without double recomputation
This commit is contained in:
parent
d48d1309c6
commit
c6bf4a0034
17
src/db.c
17
src/db.c
@ -527,7 +527,7 @@ void expireGenericCommand(redisClient *c, long long offset, int unit) {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (unit == UNIT_SECONDS) milliseconds *= 1000;
|
if (unit == UNIT_SECONDS) milliseconds *= 1000;
|
||||||
milliseconds -= offset;
|
milliseconds += offset;
|
||||||
|
|
||||||
de = dictFind(c->db->dict,key->ptr);
|
de = dictFind(c->db->dict,key->ptr);
|
||||||
if (de == NULL) {
|
if (de == NULL) {
|
||||||
@ -554,8 +554,7 @@ void expireGenericCommand(redisClient *c, long long offset, int unit) {
|
|||||||
addReply(c, shared.cone);
|
addReply(c, shared.cone);
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
long long when = mstime()+milliseconds;
|
setExpire(c->db,key,milliseconds);
|
||||||
setExpire(c->db,key,when);
|
|
||||||
addReply(c,shared.cone);
|
addReply(c,shared.cone);
|
||||||
signalModifiedKey(c->db,key);
|
signalModifiedKey(c->db,key);
|
||||||
server.dirty++;
|
server.dirty++;
|
||||||
@ -564,19 +563,19 @@ void expireGenericCommand(redisClient *c, long long offset, int unit) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void expireCommand(redisClient *c) {
|
void expireCommand(redisClient *c) {
|
||||||
expireGenericCommand(c,0,UNIT_SECONDS);
|
|
||||||
}
|
|
||||||
|
|
||||||
void expireatCommand(redisClient *c) {
|
|
||||||
expireGenericCommand(c,mstime(),UNIT_SECONDS);
|
expireGenericCommand(c,mstime(),UNIT_SECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void expireatCommand(redisClient *c) {
|
||||||
|
expireGenericCommand(c,0,UNIT_SECONDS);
|
||||||
|
}
|
||||||
|
|
||||||
void pexpireCommand(redisClient *c) {
|
void pexpireCommand(redisClient *c) {
|
||||||
expireGenericCommand(c,0,UNIT_MILLISECONDS);
|
expireGenericCommand(c,mstime(),UNIT_MILLISECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
void pexpireatCommand(redisClient *c) {
|
void pexpireatCommand(redisClient *c) {
|
||||||
expireGenericCommand(c,mstime(),UNIT_MILLISECONDS);
|
expireGenericCommand(c,0,UNIT_MILLISECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ttlGenericCommand(redisClient *c, int output_ms) {
|
void ttlGenericCommand(redisClient *c, int output_ms) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user