|NO.Z.00056|——————————|BigDataEnd|——|Hadoop&Redis.V01|——|Redis.v01|RedisDB结构.v01|

一、RedisDB结构:底层数据结构
### --- Redis作为Key-Value存储系统,数据结构如下:

~~~     Redis没有表的概念,Redis实例所对应的db以编号区分,db本身就是key的命名空间。
~~~     比如:user:1000作为key值,表示在user这个命名空间下id为1000的元素,
~~~     类似于user表的id=1000的行。
二、RedisDB结构
### --- RedisDB结构

~~~     Redis中存在“数据库”的概念,该结构由redis.h中的redisDb定义。
~~~     当redis 服务器初始化时,会预先分配 16 个数据库
~~~     所有数据库保存到结构 redisServer 的一个成员 redisServer.db 数组中
~~~     redisClient中存在一个名叫db的指针指向当前使用的数据库
### --- RedisDB结构体源码:

typedef struct redisDb {
    int id;                     # id是数据库序号,为0-15(默认Redis有16个数据库)
    long avg_ttl;               # 存储的数据库对象的平均ttl(time to live),用于统计
    dict *dict;                 # 存储数据库所有的key-value
    dict *expires;              # 存储key的过期时间
    dict *blocking_keys;        # blpop 存储阻塞key和客户端对象
    dict *ready_keys;           # 阻塞后push 响应阻塞客户端 存储阻塞后push的key和客户端对象
    dict *watched_keys;         # 存储watch监控的的key和客户端对象
} redisDb;
~~~     # id
~~~     id是数据库序号,为0-15(默认Redis有16个数据库)

~~~     # dict
~~~     存储数据库所有的key-value,后面要详细讲解

~~~     # expires
~~~     存储key的过期时间,后面要详细讲解

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

posted on 2022-04-09 13:39  yanqi_vip  阅读(30)  评论(0)    收藏  举报

导航