diff options
author | zhaozhao.zz <zhaozhao.zz@alibaba-inc.com> | 2020-06-03 17:55:18 +0800 |
---|---|---|
committer | zhaozhao.zz <zhaozhao.zz@alibaba-inc.com> | 2020-06-03 17:55:18 +0800 |
commit | 5d0774d62f4904db0ea0593c773a280ddc718d83 (patch) | |
tree | 1adbb2089c2a2acf9184e6ec967cbab6c8d067aa /src | |
parent | 52e56bf70d95544a2d7f1d3c4e305ca0734d0545 (diff) | |
download | redis-5d0774d62f4904db0ea0593c773a280ddc718d83.tar.gz |
AOF: append origin SET if no expire option
Diffstat (limited to 'src')
-rw-r--r-- | src/aof.c | 21 |
1 files changed, 13 insertions, 8 deletions
@@ -611,19 +611,24 @@ void feedAppendOnlyFile(struct redisCommand *cmd, int dictid, robj **argv, int a } else if (cmd->proc == setCommand && argc > 3) { int i; robj *exarg = NULL, *pxarg = NULL; - /* Translate SET [EX seconds][PX milliseconds] to SET and PEXPIREAT */ - buf = catAppendOnlyGenericCommand(buf,3,argv); for (i = 3; i < argc; i ++) { if (!strcasecmp(argv[i]->ptr, "ex")) exarg = argv[i+1]; if (!strcasecmp(argv[i]->ptr, "px")) pxarg = argv[i+1]; } serverAssert(!(exarg && pxarg)); - if (exarg) - buf = catAppendOnlyExpireAtCommand(buf,server.expireCommand,argv[1], - exarg); - if (pxarg) - buf = catAppendOnlyExpireAtCommand(buf,server.pexpireCommand,argv[1], - pxarg); + + if (exarg || pxarg) { + /* Translate SET [EX seconds][PX milliseconds] to SET and PEXPIREAT */ + buf = catAppendOnlyGenericCommand(buf,3,argv); + if (exarg) + buf = catAppendOnlyExpireAtCommand(buf,server.expireCommand,argv[1], + exarg); + if (pxarg) + buf = catAppendOnlyExpireAtCommand(buf,server.pexpireCommand,argv[1], + pxarg); + } else { + buf = catAppendOnlyGenericCommand(buf,argc,argv); + } } else { /* All the other commands don't need translation or need the * same translation already operated in the command vector |