网站建设技术线路选择网站主体备案号
Redis经典五大类型源码及底层实现
一、Redis数据类型的底层数据结构
SDS动态字符串- 双向链表
 - 压缩列表 
zpilist - 哈希表 
hashtable - 调表 
skiplist - 整数集合 
intset - 快速列表 
quicklist - 紧凑列表 
listpack 
二、Redis源码地址
Github:https://github.com/redis/redis
三、源码分析参考书
- Redis设计与实现
 - Redis5设计与源码分析
 
四、Redis源码核心部分
4.1 源码分析思路
- 怎么看 
- 外面考什么,看什么
 - 分类
 
 
4.2 Redis基本的数据结构(骨架)
- 简单动态字符串 sds.c
 - 整数集合 intset.c
 - 压缩列表 ziplist.c
 - 快速链表 quicklist.c
 - listpack
 - 字典 dict.c
 
4.3 Redsi数据库的实现
- 数据库底层实现 db.c
 - 持久化 rdb.c和aof.c
 
4.4 Redis服务端和客户端实现
- 事件驱动ae.c和ae_epoll.c
 - 网络连接anet.c和networking.c
 - 服务端程序server.c
 - 客户端程序redis-cli.c
 
4.5 其他
- 主从复制replication.c
 - 哨兵sentinel.c
 - 集群cluster.c
 - 其他数据结构 hyperloglog.c、geo.c
 - 其他功能 pub/sub、lua脚本
 
五、Redis的KV键值对到底是什么
redis是key-value存储系统:
-  
key一般都是String类型的字符串对象
 -  
value类型则为redis对象(RedisObject)
value可以是字符串对象,也可以是集合数据类型的对象,比如List、Hash、Set、Zset
 


六、五大数据结构底层C语言源码分析
Redis 6.0
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZSzoTZ18-1692553049425)(/Users/coder/Library/Application Support/typora-user-images/image-20230319142919367.png)]
Redis 7.0






调表:





