目录
一、服务器中的数据库
Redis服务器将所有数据库都保存在服务器状态redisServer结构的db数组中,db数组的每个项都是一个redisDb结构,每个redisDb结构代表一个数据库:
struct redisServer{
//...
redisDb* db;//一个数组,保存着服务器中的所有数据库
int dbnum;//服务器的数据库数量
//...
};
在初始化服务器时,程序会根据服务器状态的 dbnum属性来决定应该创建多少个数据库。
dbnum属性的值由服务器配置的 database选项决定,默认情况下,该选项的值为16,所以 Redis服务器默认会创建16个数据库,如下图所示。
在服务器内部,客户端状态 redisClient结构的db属性记录了客户端当前的目标数据库,这个属性是一个指向 redisDb结构的指针
typedef struct redisClient{
//...
redisDb* db;//记录客户端当前正在使用的数据库
//...
}redisClient;
redisClient.db指针指向 redisServer.db数组的其中一个元素,而被指向的元素就是客户端的目标数据