Redis | 单机数据库的实现

目录

一、服务器中的数据库

二、数据库键空间 

(1)添加新键

 (2)删除键

 (3)更新键

(4)取键取值

三、读写键空间时的维护操作


一、服务器中的数据库

        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数组的其中一个元素,而被指向的元素就是客户端的目标数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值