|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   yanqi_vip  阅读(21)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示