自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 Redis-底层数据结构-压缩列表

压缩列表(ziplist)是列表键和哈希键的底层实现之一。当列表键只包含少量列表项,并且每个列表项或者是小整数值,或者是长度比较短的字符串,Redis会使用压缩列表作为列表键的底层实现。当哈希键只包含少量键值对,并且每个键值对的键和值,要么是小整数值,要么是长度比较短的字符串,Redis会使用压缩列表作为哈希键的底层实现。压缩列表压缩列表是Redis为了节约内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构。一个压缩列表可以包括任意多个节点,每个节点可以保存一个字节数组或者一个整数值

2020-08-04 09:37:53 135

原创 Redis-底层数据结构-跳跃表

跳跃表跳跃表是一种有序数据结构,通过在每个节点维持多个指向其他节点的指针,从而达到快速访问节点的目的。跳跃表节点—zskiplistNodetypedef struct zskiplistNode{}zskiplistNode

2020-08-03 19:04:46 150

原创 Redis-底层数据结构-整数集合

整数集合是集合键的底层实现之一,当集合只包含整数值元素,且元素数量不多时,Redis使用整数集合作为集合键的底层实现。整数集合——intset整数集合是Redis用于保存整数值的集合抽象数据结构,可保存类型为int16_t、int32_t或int64_t的整数值,且不会存在重复元素。typedef struct intset{ // 编码方式 uint32_t encoding; // 集合包含的元素数量 uint32_t length; // 保存元素的数组 int8_t content

2020-08-03 18:03:31 132

原创 Redis-底层数据结构-字典

字典目录字典的实现哈希算法解决键冲突rehash渐进式rehash字典又称为符号表(symbol table)、关联数组(associative array)、或映射(map),是一种用于保存键值对(key-value pair)的抽象数据结构。在字典中,一个键(key)可以和一个值(value)进行关联,这些关联的键和值被称为键值对。字典的实现Redis的字典使用哈希表作为底层实现,一个哈希表里可以有多个哈希表节点,每个哈希表节点保存了字典中的一个键值对。哈希表typedef

2020-07-21 09:50:09 154

原创 Redis-底层数据结构-双端链表

双端链表链表节点(listNode)的结构typedef struct listNode { // 前置节点 struct listNode *prev; // 后置节点 struct listNode *next; // 节点的值 void *value;}listNode链表(list)的结构typedef struct list{ // 表头节点 listNode *head; // 表尾节点 listNode *tail; // 链表所包含的节点数量 unsign

2020-07-20 11:57:59 149

原创 Redis-底层数据结构-简单动态字符串

简单动态字符串(SDS)redis是C语言实现的,但redis中的字符串并没有直接用C语言中的字符串表示,而是自己构建了一种简单的动态字符串类型(SDS)。在redis里面,C字符串只用作字面量,用在一些不会修改的地方,eg:打日志。SDS的结构struct sdshdr { // 记录buf数组已经使用的字节数量 // 等于SDS所保存字符串的长度 int len; // 记录buf数组未经使用的字节数量 int free; // 字节数据,用于保存字符串 char buf[

2020-07-20 11:29:36 124

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除