Redis笔记
文章平均质量分 92
vv安的浅唱
致力于撰写每一篇跑通过实例的博客,更多文章信息可搜索关注【Hunter后端】
展开
-
Redis对象的数据结构及其原理汇总
这样,我们就创建了两个对象,且两个都是字符串对象,因为键值对的 key 和 value 都是字符串。如果我们创建了一个列表数据,那么 key 是字符串对象,而值 value 是列表对象。//类型//编码//指向底层实现数据结构的指针void *ptrtype在上面的结构中,type 指的是这个对象的类型,比如我们创建了一个列表数据,那么这个数据的 key 就是一个字符串对象,由这个结构里的 type 来指定,这个数据的 value 就是一个列表对象,也是由 type 来进行指定区分。原创 2023-11-17 23:08:23 · 532 阅读 · 1 评论 -
Redis数据结构八之各对象对应的底层实现
本篇笔记介绍各对象及其编码和底层实现结构。属性用于表示这个对象的类型,比如 string,list,hash,set,zset 分别表示字符串对象,列表对象,哈希对象,集合对象和有序集合对象。属性则表示该对象使用的编码则是指向底层的指针。原创 2023-11-12 23:29:31 · 84 阅读 · 0 评论 -
Redis数据结构七之listpack和quicklist
虽然 listpack 没有了指向尾部节点的偏移量,但是同样可以快速找到 listpack 的尾部节点,方式是通过 总字节长度属性的值,可以直接获取到 listpack 的尾部,然后根据 entry 元素尾部的 length 属性,就可以找到尾部 entry 的起始地址了。原创 2023-11-11 22:19:19 · 370 阅读 · 0 评论 -
Redis数据结构六之跳跃表
前面介绍跳跃表节点的层属性是一个数组,包含多个指向下一个同一层级的指针,而每个节点层的大小则是根据幂次定律(power law) 来生成的。在创建一个跳跃表节点的时候,程序都会根据幂次定律随机生成一个介于 1 到 32 之间的值作为 level 数组的大小,这个规则是越大的数出现的概率越小,它有一种计算方式,层数每加 1,出现的概率都是前一个数字的 0.25。原创 2023-09-18 22:16:24 · 225 阅读 · 0 评论 -
Redis数据结构五之整数集合
整数集(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis 就会使用整数集合作为集合键的底层实现。整数集合可以保存类型为 int16_t,int32_t,int64_t 的整数值,并且保证集合中不会出现重复元素。原创 2023-09-15 23:37:45 · 173 阅读 · 0 评论 -
Redis数据结构四之字典和哈希表
字典在 Redis 中应用相当广泛,在介绍字典之前,先来介绍一下字典、哈希表、哈希表节点的几个概念。其中,的底层就是一个哈希表student 下的就是组成哈希表的各个哈希表节点对于 Redis,哈希表和哈希表节点两个数据结构就可以实现我们对 key-value 数据的操作,但是随着哈希表保存的键值对增加或者减少,我们就需要对哈希表进行扩展或者收缩操作,因此就额外引入了字典结构来做一些额外的辅助操作,具体的实现我们接下来介绍。原创 2023-09-13 17:58:52 · 250 阅读 · 0 评论 -
Redis数据结构三之压缩列表
本篇笔记主要介绍 Redis 中压缩列表的结构及其缺陷原创 2023-05-14 22:22:35 · 425 阅读 · 1 评论 -
Redis数据结构二之SDS和双向链表
本篇笔记介绍 Redis 中 SDS(简单动态字符串)和双向链表的底层结构原创 2023-05-07 14:37:14 · 187 阅读 · 0 评论 -
Redis数据结构一之对象的介绍及各版本对应实现
本篇笔记介绍 Redis 中的对象及各个版本中每种数据类型的底层实现原创 2023-05-04 22:24:27 · 222 阅读 · 0 评论