大四实习生
redis数据结构实现(六) 压缩列表(ziplist)是链表键和哈希键的底层实现之一。当链表键或哈希键只有少量列表项,且列表项中是小整数值或短字符串,则会采用压缩列表作为底层实现。 6.1 压缩列表的实现 压缩列表是为了节约内存而开发的,由一系列特殊编码的连续内存块组成的顺序型数据结构。
redis数据结构实现(五) 4.1 整数集合的实现 整数集合是集合键的底层实现之一,当一个集合键只包含整数元素,且元素不多时,Redis会采用整数集合作为集合键的底层实现。 可以保存int16_t,int32_t, int64_t类型的整数值。
redis数据结构实现(四) 4 跳表的实现 *结构图: 跳表由zskiplistNode和构成zskiplist构成 zskiplist结构: header: 指向跳跃表的头节点 tail: 指向跳跃表的尾节点 level: 跳跃表中层数最大节点的层数(表头的层数不计入) length: 跳表保存的节点数(空表头不计入) zskiplistNode结构: level数组: 层,每次创建一个新的跳表节点都会根据幂次定律计算出level数组的大 小,也就是次层的高度。
redis数据结构实现(三) 3.1 字典的实现 *字典是一种保存键值对的抽象数据结构。set key value 将存在数据库字典中,键不可重复。哈希键的底层实现之一就是字典。 *Redis的字典使用哈希表作为底层实现,一个哈希表中有多个哈希节点,而每个节点中就保存了字典的一个键值对。
redis数据结构实现(二) 2.链表和链表节点的实现 *每个链表节点由一个listNode实现typeof struct listNode{ //前置节点 struct listNode *prev; //前置节点 struct l.
redis数据结构实现(一) 1. SDS简单动态字符串详解 sds是redis自己实现的一种数据结构,用来作为redis底层默认字符串,与c语言的字符串区别开来。在redis中c字符串一般用于不需要改变的字符串值,叫做字符串字面量,如:打印日志。