redis5.0源码分析
chenchangqun11
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
redis5.0源码浅析5-跳跃表skiplist
1.skiplist介绍定义:跳跃表是一个有序链表,其中每个节点包含不定数量的链接,节点中的第i个链接构成的单向链表跳过含有少于i个链接的节点。 跳跃表支持平均O(logN),最坏O(N)复杂度的节点查找,大部分情况下,跳跃表的效率可以和平衡树相媲美。 跳跃表在redis中当数据较多时作为有序集合键的实现方式之一。接下来,还是举个有序集合键的例子:有序集合键详解127.0.0.1:6379> ZADD score 95.5 Mike 98 Li 96 Wang //socre是一个有序集原创 2020-06-22 18:11:51 · 260 阅读 · 0 评论 -
redis5.0源码浅析1-sds
sds调试sds.c有一个 sdsTest(),里面有sds的单元测试。src目录下的 make有如下test-sds: sds.c sds.h$(REDIS_CC) sds.c zmalloc.c -DSDS_TEST_MAIN $(FINAL_LIBS) -o /home/work/redis/redis-5.0.3/codetest/sds_test执行 make ...原创 2019-05-15 16:37:22 · 469 阅读 · 0 评论 -
redis5.0源码浅析7-压缩列表
声明:本文中的注解 zltail ,zlend都是参照 《Redis设计与实现》的结构命名,并且理解本文章的前提 也是 理解 书中压缩列表部分。本文主要分析 初始化方法和插入方法//获取prevlensize值//根据ptr[0]获取 prevlensize值,如果 ptr[0]<254,prevlensize=1字节 否则 prevlensize=4字节#define...原创 2019-05-21 17:27:12 · 310 阅读 · 0 评论 -
redis5.0源码浅析2-链表
链表链表的实现比较简单,容易理解链表提供了高效的节点重排能力, 以及顺序性的节点访问方式, 并且可以通过增删节点来灵活地调整链表的长度每个链表节点使用一个 adlist.h/listNode 结构来表示://adlist.h - A generic doubly linked list implementation/* Node, List, and Iterator are ...原创 2019-05-16 17:46:02 · 128 阅读 · 0 评论 -
redis5.0源码浅析3-字典dict
前言:这个redis源码分析系列,侧重于重点和难点,比较容易理解的部分本文不会提及。强烈建议 结合《redis设计与实现》来学习。字典节点结构体typedef struct dictEntry {void *key;union {void *val;uint64_t u64;int64_t s64;double d;} v;struct dictEntry ...原创 2019-05-18 17:25:01 · 325 阅读 · 0 评论 -
redis5.0源码浅析4-整数集合
整数集合结构体如下typedef struct intset {uint32_t encoding;//编码。整数集合中所有元素的编码必须相同,只能从小到大扩展 如 int16_t->int32_tuint32_t length;//整数长度int8_t contents[];// 可以表示任意长度的整数 如 int16_t 占2位,int32_t 占4位,int64_...原创 2019-05-18 18:26:45 · 222 阅读 · 0 评论
分享