zoukankan      html  css  js  c++  java
  • redis只加载AOF文件

    如果同时配置写AOF和RDB两种文件,但在redis启动时,只会加载AOF,除非配置只写RDB,才会加载RDB文件,也因此AOF文件必须是全量数据,所以会越来越大,这缺点也将是redis优化的一个方向,即AOF只保存相对于RDB的增量,这样AOF文件将大大减小相关源码如下所示:

    int main(int argc, char **argv) {
        。。。
        if (!server.sentinel_mode) {
            loadDataFromDisk(); // 从磁盘加载数据到内存
        }
        。。。
    }
    
    /* Function called at startup to load RDB or AOF file in memory. */
    void loadDataFromDisk(void) {
        long long start = ustime();
        if (server.aof_state == AOF_ON) {
            // 加载AOF文件
            if (loadAppendOnlyFile(server.aof_filename) == C_OK)
                serverLog(LL_NOTICE,"DB loaded from append only file: %.3f seconds",(float)(ustime()-start)/1000000);
        } else {
            // 加载RDB文件
            if (rdbLoad(server.rdb_filename) == C_OK) {
                serverLog(LL_NOTICE,"DB loaded from disk: %.3f seconds",
                    (float)(ustime()-start)/1000000);
            } else if (errno != ENOENT) {
                serverLog(LL_WARNING,"Fatal error loading the DB: %s. Exiting.",strerror(errno));
                exit(1);
            }
        }
    }


  • 相关阅读:
    OD: Kernel Vulnerabilities
    newInstance()和new的区别
    原型模式
    工厂模式
    代理模式
    策略模式
    简单工厂模式
    C#操作符的重载
    旅行之舌尖上的中国
    模式和原则[转载]
  • 原文地址:https://www.cnblogs.com/aquester/p/9891526.html
Copyright © 2011-2022 走看看