| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 如何查看redis源码中的 zskiplist 结构 -> 正文阅读 |
|
[大数据]如何查看redis源码中的 zskiplist 结构 |
文章说明:阅读 1. 使用压缩包安装是否需要另外下载源码?虽然一开始就找到了该网页,但是陷入了一个问题:文章中是使用源码安装,还是使用压缩包安装,搜索了一堆网页之后,发现答案还是在本文中 原因是认识到:开启redis进程肯定要装入程序,则不管是通过那种方式安装,源码肯定会在安装redis的相关目录中 说明:在 redis-cli 下输入info 关注 #Server 查看 redis 的安装版本 本文以及参考的文章中的版本分别是 6.2.6 和 3.2.5,推测在该区间内的版本应该都可以参照 如何阅读redis源码中整理的文件提示 敲重点:关注文中提到的 第一阶段 跳跃表: 2. 定位到redis 安装目录的src下
蓝色为文件目录,白色为文件,青色为可执行文件 可通过 ll 查看 3. 定位 server.h 文件进入到 src/ 目录下后发现有很多文件,如何判断是否有 server.h 呢? 方法一:直接 vim server.h 弊端:若不存在该文件则会在该目录下创建文件名为 server.h 的文件 若是不小心添加,执行 rm -rf filename 方法二:find -name filename
提示 server.h 在当前目录下 方法三:MobaXterm 终端 选择 “Follow terminal folder” 4. 如何找到 zskiplist 结构声明方法一:点击上图左侧文件列表直接打开 弊端:ctrl + f 仅支持一次全局搜索,不是到是不是我电脑上的bug 方法二:vim server.h 在命令模式下 /zskiplist ① zset :由 dict 和 zskiplist 组成 ② zskiplist:首尾指针是 zskiplistNode 类型的
看源码的原因:没有理解上面的跳跃表图中的zskiplist,不清楚 zskiplist 和 zskiplistNode 是怎么关联的 由于 zskiplist 中的 head 是 zskiplistNode 结构的,包含后向指针,可以连接 zskiplistNode 节点
总结:了解 zskiplist 的第一步,还需要继续看书,看代码,提问,总结 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:29:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |