
Redis
文章平均质量分 90
不知名小白
计算机专业图像处理研究生,具有独立开发图像处理,模式识别类软件与算法经验
展开
-
《Redis设计与实现》第2章 简单动态字符串(SDS)
Redis自己构建了一种名为简单动态字符串(simpledynamic string, SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。 Redis中,C字符串(以空字符结尾的字符数组)只会作为字符串字面量(stringliteral)用在一些无须对字符串值进行修改的地方。2.1 SDS的定义 注意:保存空字符的1字节空间不计算在SDS的len属性里。遵循空字符结...原创 2018-07-06 09:28:05 · 234 阅读 · 0 评论 -
《Redis设计与实现》第3章 链表
链表在Redis中的应用非常广泛,比如列表键的底层实现之一就是链表。 除了列表键之外,发布与订阅、慢查询、监视器等功能也用到了链表,Redis服务器本身还使用链表来保存多个客户端的状态消息,以及使用链表来构建客户端输出缓冲区(output buffer)。3.1 链表和链表节点的实现 链表使用adlist.h/listNode结构来表示。 多个listNode可以通...原创 2018-07-06 10:21:13 · 171 阅读 · 0 评论 -
《Redis设计与实现》第4章 字典
字典,又称为符号表(symbol table)、关联数组(associative array)或映射(map),是一种用于保存键值对(key-value pair)的抽象数据结构。 字典中的每个键都是独一无二的,程序可以在字典中根据键查找与之关联的值,或者通过键更新值,又或者根据键删除整个键值对,等等。 字典在Redis中的应用相当广泛,比如Redis的数据库就是使用字典来作为...原创 2018-07-06 20:54:09 · 263 阅读 · 0 评论 -
《Redis设计与实现》第5章 跳跃表(skiplist)
跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。 跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。 如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员(member)是比较长的字符串时,Redis就会使用跳跃表来作为有序集合键的底层实现。 Re...原创 2018-07-25 10:00:12 · 272 阅读 · 0 评论 -
《Redis设计与实现》第6章 整数集合(intset)
整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现。6.1 整数集合的实现 整数集合(intset)是Redis用于保存整数值的集合抽象数据结构,它可以保证类型为int16_t、int32_t或者int64_t的整数值,并且保证集合中不会出现重复的元素。集合结构保...原创 2018-08-05 10:22:35 · 359 阅读 · 0 评论 -
《Redis设计与实现》第7章 压缩列表(ziplist)
压缩列表(ziplist)是列表键和哈希键的底层实现之一。 当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串,那么Redis就会使用压缩列表来作为列表键的底层实现。 当一个哈希键只包含少量键值对,并且每个键值对的键和值要么就是小整数值,要么就是长度较短的字符串时,那么Redis就会使用压缩列表来做哈希键的底层...原创 2018-08-05 10:56:39 · 501 阅读 · 0 评论