Redis数据结构与对象7——quicklist 发表于 2019-03-18 | 更新于 2019-03-19 | 分类于 Redis | 本文字数: 4.5k | 阅读时长 ≈ 4 分钟 quicklistRedis3.2分支以后引入了一种新的内部数据结构——quicklist,quicklist经常被用作列表键的实现之一,4.0版本以后取消了列表键对象的ziplist和linkedlist编码,统一使用quicklist编码。 阅读全文 »
HTTP和HTTPS 发表于 2019-02-20 | 更新于 2019-02-25 | 分类于 网络 | 本文字数: 6.8k | 阅读时长 ≈ 6 分钟 HTTP和HTTPS属于计算机网络范畴,但作为开发人员,不管是后台开发或是前台开发,都很有必要掌握它们。 阅读全文 »
Redis数据结构与对象6——压缩列表 发表于 2019-02-12 | 更新于 2019-03-19 | 分类于 Redis | 本文字数: 3.9k | 阅读时长 ≈ 4 分钟 压缩列表压缩列表: (ziplist)是列表键(list)和哈希键(hash)的底层实现之一。当一个列表键只包含少量的列表项,并且每个列表项要么就是小整数值(具体见下文),要么就是长度比较短的字符串,那么Redis就会使用压缩列表来作为列表键的底层实现。注:Redis3.2分支引入了quicklist,并在4.0分支用quicklist替代了ziplist和linkedlist成为了列表对象的底层编码 阅读全文 »
Redis数据结构与对象5——整数集合 发表于 2019-01-31 | 更新于 2019-03-19 | 分类于 Redis | 本文字数: 1.9k | 阅读时长 ≈ 2 分钟 整数集合整数集合: (intset)是集合键(set)的底层实现之一,当一个集合只包含整数值元素(浮点数会让set的object encoding 变成hashtable),并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现。 阅读全文 »
Redis数据结构与对象4——跳跃表 发表于 2019-01-31 | 更新于 2019-03-19 | 分类于 Redis | 本文字数: 3.8k | 阅读时长 ≈ 3 分钟 跳跃表跳跃表: (skiplist)是一种有序的数据结构,支持平均O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。大部分情况下,跳跃表的效率可以和平衡树相媲美,且实现更为简单。 阅读全文 »
Redis数据结构与对象3——字典 发表于 2019-01-31 | 更新于 2019-03-19 | 分类于 Redis | 本文字数: 3k | 阅读时长 ≈ 3 分钟 字典字典,又称为符号表(symbol table)、关联数组(associative array)或映射(map),是一种用于保存键值对的抽象数据结构。字典中的每个键都是独一无二的,程序可以在字典中通过键查找与之关联的值,或进行更新删除等操作。 阅读全文 »
Redis数据结构与对象2——链表 发表于 2019-01-31 | 更新于 2019-03-19 | 分类于 Redis | 本文字数: 821 | 阅读时长 ≈ 1 分钟 链表链表提供了高效的节点重排能力,以及顺序性节点的访问方式,并且可以通过增删节点来灵活地调整长度。Redis中的列表键(list)的底层实现之一就是链表。当一个链表键包含了较多元素,又或者列表中包含的元素都是较长的字符串时,Redis就会使用链表作为列表键的底层实现。(实际上链表还被广泛用于实现Redis的各种功能,比如发布与订阅、慢查询、监视器等) 阅读全文 »
Redis数据结构与对象1——简单动态字符串SDS 发表于 2018-12-28 | 更新于 2019-03-19 | 分类于 Redis | 本文字数: 1.5k | 阅读时长 ≈ 1 分钟 简单动态字符串-SDSRedis是由C语言编写的,但Redis没有直接使用C语言传统的字符串表示,而是自己构建了一种叫做简单动态字符串(simple dynamic string, SDS)的抽象类型,除了用来保存字符串外,SDS还被用作缓冲区,如AOF缓冲区。 阅读全文 »