![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
金木犀129
我不喜欢这世界,我只喜欢你
展开
-
Redis设计与实现第一部分:第2章:简单动态字符串SDS
Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组),而是自己构建了一种名为简单动态字符串(SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。 在Redis里面,C字符串智慧作为字符串字面量(string literal)用在一些无需对字符串值进行修改的地方。但Redis需要的不仅仅是一个字符串字面量,而是一个可以被修改的字符串值时,Redis就会使用SDS...翻译 2019-02-18 09:32:24 · 134 阅读 · 0 评论 -
Redis设计与实现第一部分:第3章:链表
链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。 由于C语言并没有内置这种数据结构,所以Redis构建了自己的链表实现。 环境:当一个列表键包含了数量较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现。 应用:列表键的底层实现之一就是链表(有前提条件的)、发布与订阅、慢查询、监...翻译 2019-02-18 09:37:54 · 110 阅读 · 0 评论 -
Redis设计与实现第一部分:第4章:字典、哈希表
字典,又称为符号表(symbol table)、关联数组(associate array)或映射(map),是一种用于保存键值对(key-value pair)的抽象数据结构。 在字典中,一个键(key)可以和一个值(value)进行关联(或者说将键映射为值)。 字典中每个键都是独一无二的,可以通过键查找值,更新值,删除整个键值对等。 Redis使用的C语言没有内置这种数据结...翻译 2019-02-18 09:38:24 · 226 阅读 · 0 评论 -
Redis设计与实现第一部分:第5章:Redis 跳跃表
跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其它节点的指针,从而达到快速访问节点的目的。 跳跃表支持O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。 大部分情况下,跳跃表的效率可以和平衡树相媲美,并且因为跳跃表的实现比平衡树来的更为简单,所以不少程序都使用跳跃表来代替平衡树。 Redis使用跳跃表作为有序集合键...翻译 2019-02-18 09:38:54 · 180 阅读 · 0 评论