当前位置: 首页 > news >正文

11_Redis经典五大类型源码及底层实现

Redis经典五大类型源码及底层实现

一、Redis数据类型的底层数据结构

  1. SDS动态字符串
  2. 双向链表
  3. 压缩列表 zpilist
  4. 哈希表 hashtable
  5. 调表 skiplist
  6. 整数集合 intset
  7. 快速列表 quicklist
  8. 紧凑列表 listpack

二、Redis源码地址

Github:https://github.com/redis/redis

三、源码分析参考书

  1. Redis设计与实现
  2. Redis5设计与源码分析

四、Redis源码核心部分

4.1 源码分析思路

  1. 怎么看
    1. 外面考什么,看什么
    2. 分类

4.2 Redis基本的数据结构(骨架)

  1. 简单动态字符串 sds.c
  2. 整数集合 intset.c
  3. 压缩列表 ziplist.c
  4. 快速链表 quicklist.c
  5. listpack
  6. 字典 dict.c

4.3 Redsi数据库的实现

  1. 数据库底层实现 db.c
  2. 持久化 rdb.c和aof.c

4.4 Redis服务端和客户端实现

  1. 事件驱动ae.c和ae_epoll.c
  2. 网络连接anet.c和networking.c
  3. 服务端程序server.c
  4. 客户端程序redis-cli.c

4.5 其他

  1. 主从复制replication.c
  2. 哨兵sentinel.c
  3. 集群cluster.c
  4. 其他数据结构 hyperloglog.c、geo.c
  5. 其他功能 pub/sub、lua脚本

五、Redis的KV键值对到底是什么

redis是key-value存储系统:

  1. key一般都是String类型的字符串对象

  2. value类型则为redis对象(RedisObject)

    value可以是字符串对象,也可以是集合数据类型的对象,比如List、Hash、Set、Zset

image-20230319140935247

image-20230319141130677

六、五大数据结构底层C语言源码分析

Redis 6.0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZSzoTZ18-1692553049425)(/Users/coder/Library/Application Support/typora-user-images/image-20230319142919367.png)]

Redis 7.0

image-20230319142935236

image-20230319143006388

image-20230319144941146

image-20230319150924828

image-20230319151041367

image-20230319151323518

调表:

image-20230319152521082

image-20230319152607960

image-20230319152915138

image-20230319153008931

image-20230319153053672

http://www.lryc.cn/news/137812.html

相关文章:

  • AWS WAF实战、优势对比和缺陷解决
  • 13,【设计模式】代理
  • 基于IDEA使用maven创建hibernate项目
  • 使用Termux在安卓手机上搭建Hexo博客网站,并发布到公网访问
  • 宝塔 杀死 java服务 netstat -tlnp | grep :7003 kill 2205698
  • Python3 数据类型转换
  • Cookie 和 Session 的工作流程
  • AutoSAR配置与实践(基础篇)3.6 BSW的WatchDog功能
  • 运维高级第6次作业
  • MongoDB使用GridFS存储大数据(Java)
  • 内网穿透实战应用-windwos10系统搭建我的世界服务器,内网穿透实现联机游戏Minecraft
  • pytorch基于ray和accelerate实现多GPU数据并行的模型加速训练
  • [蓝帽杯 2022 初赛]domainhacker
  • 在 Pytorch 中使用 TensorBoard
  • Grafana Dashboard 备份方案
  • opencv-疲劳检测-眨眼检测
  • 2023-08-24力扣每日一题
  • 蚂蚁数科持续发力PaaS领域,SOFAStack布局全栈软件供应链安全产品
  • Java后端开发面试题——消息中间篇
  • C++ Windows API IsDebuggerPresent的作用
  • 【JVM 内存结构 | 程序计数器】
  • 华为云Stack的学习(一)
  • 人类反馈强化学习RLHF;微软应用商店推出AI摘要功能
  • day1:前端缓存问题
  • 学习网络编程No.4【socket编程实战】
  • HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 四)
  • arcgis--坐标系
  • LFS学习系列 第5章. 编译交叉工具链(1)
  • 网络互联与互联网 - TCP 协议详解
  • 开源在线图片设计器,支持PSD解析、AI抠图等,基于Puppeteer生成图片