9. 数据库

struct redisServer {
	redisDB *db; // 服务器中的全部数据库
	int dbnum;   // 数据库的数量
}

切换数据库

typedef struct redisClient {
	redisDb *db; // 记录客户端正在使用的数据库
}

image.png

数据库键空间

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

image.png

设置键的过期时间

image.png

**保存过期时间:**redisDB结构的expires字典保存了数据库中所有键的过期时间。

image.png

如果key不在过期字段中,则key没有过期。

如果在字典中,判断是否大于键的过期时间,如果是则已过期。

删除策略