美文网首页
redis--数据库

redis--数据库

作者: MontyOak | 来源:发表于2019-07-21 20:59 被阅读0次

    数据库对象定义如下:

    struct redisServer {
        // ...
        int dbnum; // 数据库数量
        redisDb *db; // 数组保存redis中所有db
        // ...
    }
    

    redisDb定义如下:

    typedef struct redisDb {
        // ...
        dict *dict; // 数据库键空间,保存所有键值对
        // ...
    }
    

    过期键删除

    惰性删除
    redis过期键惰性删除策略定义在db.c/expireIfNeeded,所有对键的读写操作进行前都需要调用这个方法进行检查。若已过则清除键。
    定期删除
    redis过期键定期删除策略定义在redis.c/activeExpireCycle,每当redis周期性执行redis.c/serverCron的时候,都会执行。它在指定时间内,分批遍历各个数据库,从expires中随机检查一部分键做过期检查。
    RDB
    rdb文件生成和加载时会过滤掉已过期的键

    相关文章

      网友评论

          本文标题:redis--数据库

          本文链接:https://www.haomeiwen.com/subject/skcplctx.html