- 博客(8)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 redis数据库结构解析
数据库本篇文章是redis系列中的第二大部分的开始,这一部分为数据库的实现,主要讲单节点的数据库知识。下边附上第一部分基础知识总结篇的链接,有需要的童鞋,欢迎查看。redis–对象文章目录数据库文章主要内容如下:1、数据库结构2、键空间2.1、读写键空间的附加操作3、生存时间3.1、过期字典4、过期策略4.1、现有策略4.2、redis的策略5、AOF、RDB和复制5.1、生成RDB5.2、...
2019-08-20 17:21:02 373
原创 redis--对象
对象本篇文章着重介绍一下,redis中大家日常使用的对象实现原理,这里附上这一系列的数据结构讲解,有需要的请点击查看哟。动态字符串链表字典跳跃表整数集合压缩列表文章目录对象1、对象的类型与编码1.1、字符串对象1.2、列表对象1.3、哈希对象1.4、集合对象1.5、有序集合对象2、类型检查3、内存回收4、对象共享5、空转时长前面连续介绍了redis的数据结构,但是redis并没有...
2019-08-08 16:46:53 198
原创 redis--压缩列表
文章目录压缩列表压缩列表的实现压缩列表节点previous_entry_lengthencodingcontent连锁更新压缩列表API压缩列表当一个列表键只包含少量列表项,并且每个列表项要么是小整数值,要么是长度比较短的字符串,那么redis就会使用压缩列表来作为列表键的实现。压缩列表的实现压缩列表是由一系列特殊编码的连接内存块组成的顺序数据结构。一个压缩列表可以包含任意多个节点,每个节...
2019-08-06 10:56:14 353
原创 redis--整数集合
文章目录整数集合整数集合的实现升级升级的好处提升灵活性节约内存降级整数集合API整数集合整数集合是集合键的底层实现之一,当一个集合只包含整数数值元素,并且这个集合的元素数量不多时,redis就会使用整数集合作为集合键的底层实现。整数集合的实现整数集合是redis用于保存整数值的集合抽象数据结构,它可以保存类型为int16,int32和int64的整数值,并且保证集合中不会出现重复元素。整...
2019-08-06 08:56:53 303
原创 redis--跳跃表
跳跃表文章目录跳跃表跳跃表的实现节点跳跃表API跳跃表是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问的目的。跳跃表支持平均O(logN)和最坏O(N^2)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。效率可以和平衡树媲美。跳跃表的实现redis中用zskiplistNode表示跳跃表节点,而zskiplist结构用于保存跳跃表相关信息。结构如下所...
2019-08-05 15:31:35 210
原创 redis--字典
文章目录字典字典的实现哈希表哈希表节点字典哈希算法rehash渐进式rehash字典api字典字典,又称关联数组或映射,是一种用于保存键值对的抽象数据结构。在字典中,一个键key和一个值value进行关联;字典中的每个键都是独一无二的。字典的实现redis的字典使用哈希表作为底层实现,一个哈希表可以有很多节点,而每个节点就保存了字典中的一个键值对。哈希表定义结构如下:typedef ...
2019-08-05 14:15:44 356
原创 redis--链表
链表redis数据结构–链表:作为一种常用的数据结构,在这里就不详细介绍了。链表提供了高效的几点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。1、链表和节点的实现每个链表节点使用一个listNode结构来表示:typedef struct listNode { //前置节点 struct listNode *prev; //后...
2019-08-02 08:28:21 185
原创 redis--简单动态字符串
简单动态字符串Redis没有直接使用C语言传统的字符串表示,而是构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,将SDS用作Redis的默认字符串表示。在Redis里边,C字符串只会作为字符串面量用在一些无需对字符串的值进行修改的地方。文章目录简单动态字符串1、SDS的定义2、SDS与C字符串的区别2.1、获取字符串长度2.2、杜绝缓冲区溢出2....
2019-08-01 11:24:05 608
不相交类集迷宫求解路径
2017-12-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人