11 2021 档案
摘要:变量和基本类型 变量 变量声明和定义的关系 变量声明规定了变量的类型和名字,在这一点上定义与之相同。但是除此之外,定义还申请存储空间,也可能会为变量赋一个初始值。 如果想声明一个变量而非定义它,就在变量名前添加关键字extern,而且不要显示地初始化变量: extern int i; // 声明i而
阅读全文
摘要:跳跃表(skiplist)是一种有序数据结构,通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。 在大部分情况下,跳跃表的效率可以和平衡树媲美,并且因为跳跃表的实现比平衡树要来的简单
阅读全文
摘要:字典,又称为符号表(symbol table)、关联数组(associative array)或映射(map),是一种用于保存键值对的抽象数据结构。 在字典中,一个键(key)和一个值(value)进行关联(将键映射为值),这些关联的键和值就称为键值对。字典中的每个键都是独一无二的。 字典在Redi
阅读全文
摘要:链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。链表在Redis中的应用十分广泛,如列表键的底层实现之一就是链表。当一个列表键包含了数量较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现。 如下所示:
阅读全文
摘要:Redis自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。 在Redis中,C字符串只会作为字符串字面量(string literal)用在一些无须对字符串进行修改的地方,如打印日志。 redisLog(RE
阅读全文
摘要:创建型 类 Factory Method:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。 对象 Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 Builder:将一个复杂对象的
阅读全文