Redis
文章平均质量分 74
ABLE.ZHANG
这个作者很懒,什么都没留下…
展开
-
Redis (3) 快速列表 quickList
前言 Redis中是采用sdlist和ziplist来实现quicklist的,其中sdlist充当map中控器的作用,ziplist充当占用连续内存空间数组的作用。quicklist本身是一个双向无环链表,它的每一个节点都是一个ziplist。为什么这么设计呢? 双向链表在插入节点上复杂度很低,但它的内存开销很大,每个节点的地址不连续,容易产生内存碎片。 ziplist是存储在一段连续的内存上,存储效率高,但是它不利于修改操作,插入和删除数都很麻烦,复杂度高,而且其需要频繁的申请释放内存,特别是zi原创 2021-04-07 17:24:49 · 141 阅读 · 0 评论 -
Redis(2) ziplist 压缩列表
前言 Redis的压缩列表用到很多地方,比如List Hashp等,那么Redis的压缩列表到底是个啥子结构呢,本文来一起探讨 源文件代码:ziplist.c ziplist.h 在这两个文件中 数据结构 -----------------------------------------------------------------------------------------------------------------------------------------------------原创 2021-04-07 09:22:37 · 155 阅读 · 0 评论 -
Redis(1) String embstr raw Int 扩容讲解
前言 本文从Redis4.0的源码进行分析,根据上图来讲解Redis 的String 字符串 三种类型 使用 set a able 命令插入值 在通过debug object a 查看字符串类型 Value: 理解为字符串数据 refcount: 暂且不知,通过翻译是一个引用的意思,尝试set b able 发现引用还是1,不知道这个引用怎么改为2 这里应该有一些优化 enconding:编码类型serializedlength,l...原创 2021-04-01 21:22:33 · 1124 阅读 · 0 评论