redis库 - 969251639/study GitHub Wiki

redis服务器将所有数据库都保存在一个redisServer结构的db数组中

struct redisServer {
    //一个数组,保存着服务器中的所有数据库
    redisDb* db;
}

在服务器初始化时根据dbnum属性决定创建多少个库

struct redisServer {
    //服务器的数据库数量,默认为16
    int dbnum;
}


可以通过select命令来切换数据库

redis是一个键值对数据库的服务器,每个库都是由redisDb结构来表示,其中redisDb结构中的dict属性保存了该库所有的键值对,称之为键空间

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

redis的过期删除策略采用定时删除和惰性删除

  1. 定时删除:从数据库中的expires字典中随机jiancha一部分过期的时间,并删除
  2. 惰性删除:每次去get数据的时候都去判断一下该键有没有过期