0

阅读redis源码时,发现RDB进程不判断key的过期时间:

https://github.com/redis/redis/blob/6.2/src/rdb.c

int rdbSaveKeyValuePair(rio *rdb, robj *key, robj *val, long long expiretime) {antirez, 3 years ago: • Fix rdbSaveKeyValuePair() integer overflow.
    int savelru = server.maxmemory_policy & MAXMEMORY_FLAG_LRU;
    int savelfu = server.maxmemory_policy & MAXMEMORY_FLAG_LFU;

    /* Save the expire time */
    if (expiretime != -1) {
        if (rdbSaveType(rdb,RDB_OPCODE_EXPIRETIME_MS) == -1) return -1;
        if (rdbSaveMillisecondTime(rdb,expiretime) == -1) return -1;
    }
...
}

即使密钥过期,它也会保存密钥吗?为什么?

非常感谢!

4

0 回答 0