Commit 86e9f48a authored by xuzhou's avatar xuzhou
Browse files

Optimize set command with ex/px when updating aof.

parent 530fcf86
...@@ -536,16 +536,16 @@ void feedAppendOnlyFile(struct redisCommand *cmd, int dictid, robj **argv, int a ...@@ -536,16 +536,16 @@ void feedAppendOnlyFile(struct redisCommand *cmd, int dictid, robj **argv, int a
buf = catAppendOnlyGenericCommand(buf,3,tmpargv); buf = catAppendOnlyGenericCommand(buf,3,tmpargv);
decrRefCount(tmpargv[0]); decrRefCount(tmpargv[0]);
buf = catAppendOnlyExpireAtCommand(buf,cmd,argv[1],argv[2]); buf = catAppendOnlyExpireAtCommand(buf,cmd,argv[1],argv[2]);
} else if (cmd->proc == setCommand) { } else if (cmd->proc == setCommand && argc > 3) {
int i; int i;
robj *exarg = NULL, *pxarg = NULL; robj *exarg = NULL, *pxarg = NULL;
/* Translate SET [EX seconds][PX milliseconds] to SET and PEXPIREAT */ /* Translate SET [EX seconds][PX milliseconds] to SET and PEXPIREAT */
buf = catAppendOnlyGenericCommand(buf,3,argv); buf = catAppendOnlyGenericCommand(buf,3,argv);
for (i = 3; i < argc; i ++) { for (i = 3; i < argc; i ++) {
if (sdsEncodedObject(argv[i]) && !strcasecmp(argv[i]->ptr, "ex")) if (!strcasecmp(argv[i]->ptr, "ex"))
exarg = argv[i+1]; exarg = argv[i+1];
if (sdsEncodedObject(argv[i]) && !strcasecmp(argv[i]->ptr, "px")) if (!strcasecmp(argv[i]->ptr, "px"))
pxarg = argv[i+1]; pxarg = argv[i+1];
} }
serverAssert(!(exarg && pxarg)); serverAssert(!(exarg && pxarg));
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment