提交 c6bf4a00 编写于 作者: P Premysl Hruby 提交者: antirez

for (p)expireat use absolute time, without double recomputation

上级 d48d1309
......@@ -527,7 +527,7 @@ void expireGenericCommand(redisClient *c, long long offset, int unit) {
return;
if (unit == UNIT_SECONDS) milliseconds *= 1000;
milliseconds -= offset;
milliseconds += offset;
de = dictFind(c->db->dict,key->ptr);
if (de == NULL) {
......@@ -554,8 +554,7 @@ void expireGenericCommand(redisClient *c, long long offset, int unit) {
addReply(c, shared.cone);
return;
} else {
long long when = mstime()+milliseconds;
setExpire(c->db,key,when);
setExpire(c->db,key,milliseconds);
addReply(c,shared.cone);
signalModifiedKey(c->db,key);
server.dirty++;
......@@ -564,19 +563,19 @@ void expireGenericCommand(redisClient *c, long long offset, int unit) {
}
void expireCommand(redisClient *c) {
expireGenericCommand(c,0,UNIT_SECONDS);
expireGenericCommand(c,mstime(),UNIT_SECONDS);
}
void expireatCommand(redisClient *c) {
expireGenericCommand(c,mstime(),UNIT_SECONDS);
expireGenericCommand(c,0,UNIT_SECONDS);
}
void pexpireCommand(redisClient *c) {
expireGenericCommand(c,0,UNIT_MILLISECONDS);
expireGenericCommand(c,mstime(),UNIT_MILLISECONDS);
}
void pexpireatCommand(redisClient *c) {
expireGenericCommand(c,mstime(),UNIT_MILLISECONDS);
expireGenericCommand(c,0,UNIT_MILLISECONDS);
}
void ttlGenericCommand(redisClient *c, int output_ms) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册