摘要: 一,哈希表节点 哈希表节点使用dictEntry结构表示,每个dictEntry结构都保存一个键值对。 typedef struct dictEntry{ //键 void *key; //值 union{ void *val; uint64_t u64; int64_t s64; } v; //指 阅读全文
posted @ 2019-04-05 17:49 inspire0x001 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 之前我们学习了Redis中使用到的数据结构,但是Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统。该系统包含字符串对象,列表对象,哈希对象,集合对象和有序集合对象这五中类型的对象。一.对象的类型和编码Redis使用对象来表示数据库中的键和值,每次在数据库 阅读全文
posted @ 2019-04-05 16:00 inspire0x001 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现。 比如:integers列表键的底层实现就是一个链表,链表中的每个节点都保存了一个整数值。 1.链表节点:typedef struct listNode{ //前置节点 str 阅读全文
posted @ 2019-04-05 11:41 inspire0x001 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 一,什么是SDS? 1.引出SDSC字符串:c语言中,用空字符结尾的字符数组表示字符串简单动态字符串(SDS):Redis中,用SDS来表示字符串。在Redis中,包含字符串值的键值对在底层都是由SDS实现的首先,Redis使用C语言写的,但是Redis没有使用C语言传统的字符串表示,它自己构建了简 阅读全文
posted @ 2019-04-05 11:34 inspire0x001 阅读(174) 评论(0) 推荐(0) 编辑