KEEP GOING

Practice makes Perfect.


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

Redis源码阅读(四) 跳跃表

发表于 2018-08-06 | 分类于 源码阅读
跳跃表是一种有序链表,通过维持多个指针指向不同结点用来进行快速访问,它支持平均O(logN),最坏O(N)的时间复杂度,在Redis中它是实现有序集合ZSET的底层实现之一。 1. 定义Redis中,跳跃表实现如下图 这个跳跃表的实现和 William Pugh的《Skip Lists: A Pr ...
阅读全文 »

Redis源码阅读(三) 字典

发表于 2018-08-02 | 更新于 2018-08-06 | 分类于 源码阅读
字典,又称符号表、关联数组、映射(map)是一种保存K/V队的抽象数据结构。字典中每个key都是唯一的,而且能在常数时间O(1)获取key对应的值。 1. 定义 哈希表结点 key 保存键值对中的键 v 保存键值对中的值,类型可以为void *, uint64_t等,使用union节省内存 ne ...
阅读全文 »

Redis源码阅读(二) 链表

发表于 2018-08-02 | 更新于 2018-08-06 | 分类于 源码阅读
1. 定义 链表结点 通过prev指针与上一个结点相连,通过next指针与下一个结点相连,这样组成双端链表方便操作。 12345678typedef struct listNode { // 前驱结点 struct listNode *prev; // 后继节点 ...
阅读全文 »

Redis源码阅读(一) 简单动态字符串

发表于 2018-08-01 | 更新于 2018-08-02 | 分类于 源码阅读
​Redis中自定义了简单动态字符串,兼容传统C字符串,并提供了一些高效、安全的方法,用于Redis键值对中需要字符串的存储。除了一些日志输出的字面量外,其余需要修改的字符串都以sds作为存储。 1. 定义12345678typedef char* sds;struct sdshdr64 { ...
阅读全文 »

redis源码阅读(零) 概述

发表于 2018-08-01 | 更新于 2018-10-25 | 分类于 源码阅读
历时3个月,粗浅的过了一遍源码,因为没有使用过集群,对于这部分看的比较随意,多是参考资料进行学习 对于其他一些功能源码并未阅读,等以后有兴趣了再看看 源码版本 redis-4.0.10 参考资料: https://github.com/huangz1990/redis-3.0-annotate ...
阅读全文 »

TCP/IP协议卷一阅读笔记

发表于 2018-06-13 | 更新于 2018-11-06 | 分类于 读书笔记
零 · 概述I · OSI参考模型 名称 例子 应用层 指定完成某些用户初始化任务的方法,应用协议通常由应用开发者设计实现。FTP、Skype等 表示层 指定数据表示格式和转化规则的方法,如转码,加密等 会话层 指定由多个连接组成一个通信会话的方法,包括关闭连接、重启连接、se ...
阅读全文 »
123
郭欣成

郭欣成

Backend & Developer

26 日志
2 分类
3 标签
GitHub
© 2018 郭欣成
由 Hexo 强力驱动 v3.7.1
|
主题 — NexT.Pisces v6.3.0