惊艳!阿里内部445页爆款Redis源码分析宝典终开源( 三 )
第11章 , 本章介绍了Redis 的字符串命令 。 sct和get命令在Redis中是最常用的命令 。 字符串命令底层借助于sds来实现 , 通过robj结构体来实现数据的设置和获取 。 字符串key-value和超时时间存储在redisDb的字典里 。
文章插图
第12章 , 本章主要介绍了Redis对外提供的散列相关命令的底层实现 。 我们首先介绍Redis对散列结构的存储方式 , 即ziplist或者散列表 , 当field-valuc长度较短并且fiecld-value的个数较少时 , Redis采用ziplist用于存储 , 否则使用散列表 。 之后 , 总结了Redis的使用方便 , 整合这两种结构后对外提供的统一接口 。 最后 , 详细讲解了Redis是如何利用上述整合接口实现散列相关命令的 。
文章插图
第13章 , 本章讲述Redis 中列表的命令实现 , 列表帐层的数据结构采用的是quicklist 。 本章首先
介绍了栈与队列的基本概念 , 以及如何通过push/pop实现栈与队列;其次介绍了列表阻塞
命令的实现 , 通过blpop命令讲解了客户端阻塞流程 , 以及解除客户端阻塞流程 , 该流程还
是比较复杂的 , 需要读者认真学习梳理;最后介绍了一些常见的列表操作和查询的命令 。
文章插图
第14章 , 本章介绍了Redis 中集合的各项命令 , 命令包含了单集合的操作和多集合间的运算 。 从源码中我们可以看到 , 集合底层基于dict和 intset两基本数据结构 , 操作大多分情况讨论 , 插入和删除的效率也依赖dict与intset 。 学习集合命令源码时不妨结合第5章和第6章的数据结构学习 。
文章插图
第15章 , 本章主要讲解了有序集合相关的命令 , 有序集合根据元素大小 , 底层实现分为两种 , 一种是ziplist , 另一种是dict和skiplist 。 基于这3种数据结构 , 分析了有序集合的基本操作 , 批量操作和集合的运算 。 希望能帮助读者了解和掌握有序集合相关的命令与原理 。
文章插图
文章插图
第16章 , 本节首先介绍了geohash算法的发展史 , 之后详细讲解了Redis中 GEO相关命令的实现 。 在介绍Redis GEO相关命令实现的过程中 , 也讲解了其中精彩的位操作算法 , 希望能够给读者一定的启发 。
文章插图
第17章 , 第一节讨论了基数计数算法的演进 , 对从最开始的LC算法到LLC算法 , 再到HLL算法进行了简单讨论 。 LC算法在基数较小时比较准确 , LLC在基数较大时有优势 , 而AC是LC和LLC两者的简单结合 , HLL则是在LLC基础上进行多项优化改进 。 第二2节讲解了Redis 的HLL算法实现 , 第三节讲解了HypcrLogLog命令的实现 。
文章插图
文章插图
第18章 , 本章讲解了Stream相关的命令的源码实现 , 限于篇幅 , 有些命令的实现只做了整体性概要介绍 , 若想深入了解命令 , 可自动查看Redis 5.0的源码 。
文章插图
推荐阅读
- 华为鸿蒙来袭,刘强东、董明珠、马化腾力挺,却不见阿里系身影
- 华为员工必须用华为手机?内部员工:主管用友商手机会“倒霉”
- 新买的手机突然黑屏,女子坚持要换新机,商家:内部零件都给换
- 1399元起!开年首款5G手机正式发布:外观惊艳
- 又黄一个APP,“品牌收购机”成“没落收割机”,收一黄一
- 消防|阿里云AIoT云端一体重磅新品 国内首款安消一体机评测报告
- 2021年互联网巨头第一仗!飞书开撕微信,阿里华为百度全都入局
- “女性机器人”为啥火?外表颜值高、功能强,内部结构也一清二楚
- 小米11官方公开内部结构,轻薄机身都藏了什么?
- 阿里云AIoT启动“堡垒行动”企业物联网平台年内覆盖1万家客户