|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
分类:
bdv012-redis
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」