06 2018 档案
摘要:本文将分五个部分来分析和总结Redis的内部机制,分别是:Redis数据库、Redis客户端、Redis事件、Redis服务器的初始化步骤、Redis命令的执行过程。 首先介绍一下Redis服务器的状态结构。Redis使用一个类型为“redisServer”的数据结构来保存整个Redis服务器的状态
阅读全文
摘要:一、Redis对象结构Redis中的每个对象都由一个redisObject结构表示: 1. type:Redis对象类型redisObject的'type'属性记录了对象的类型: type命令:返回键对应的值对象的类型。 2. encoding:Redis对象编码和底层实现redisObject的'
阅读全文
摘要:压缩列表是Redis为了节约内存而开发的,由一系列特殊编码的连续内存块组成的顺序型数据结构。一个压缩列表可以包含任意多个节点,每个节点可以保存一个字节数组或者一个整数值。 一、压缩列表结构1. 压缩列表结构: 参数说明:zlbytes:记录整个压缩列表占用的内存字节数。zltail:记录压缩列表表尾
阅读全文
摘要:整数集合是Redis用于保存整数值的集合抽象数据结构,它可以保存类型为int16_t 、int32_t或者int64_t的整数值,并且保证集合中不会出现重复元素。 一、整数集合数据结构定义 参数说明:contents:contents数组是整数集合的底层实现,整数集合的每个元素都是contents数
阅读全文
摘要:跳跃表是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。 一、跳跃表结构定义1. 跳跃表节点结构定义: 2. 跳跃表结构定义: 示例: 二、跳跃表节点中各种结构的作用1. 层:用于加快访问其他节点的速度,一般来说,层的数量越多,访问其他节点的速度就越快。2
阅读全文
摘要:Redis的字典使用哈希表作为底层实现,一个哈希表里面可以有多个哈希表节点,而每个哈希表节点就保存了字典中的一个键值对。 一、字典结构定义1. 哈希表节点结构定义: 2. 哈希表结构定义: 3. 字典结构定义: 参数说明:type:是一个指向dictType结构的指针,每个dictType结构保存了
阅读全文
摘要:Redis使用的链表是双向无环链表,链表节点可用于保存各种不同类型的值。 一、链表结构定义1. 链表节点结构定义: 2. 链表结构定义: 示例: 二、链表在Redis中的用途1. 作为列表键的底层实现之一:当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会
阅读全文
摘要:Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组), 而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型, 并将SDS用作Redis的默认字符串表示。在Redis中,C字符串只会作为字符串字面量,用在一些无需对字符串值进行修改的地
阅读全文