06 2020 档案

Redis 3.0.4 RDB持久化
摘要:跳过了数据库等别的内容,跳到了RDB,别的之后会补回来、 RDB持久化,是将redis内存中的数据库状态保存到磁盘里,以免数据意外丢失,可以手动执行,也可以通过配置执行。 手动执行: SAVE: 会阻塞服务器进程,直到RDB文件创建完毕。 BGSAVE:会fork一个子进程,然后由子进程负责创建RD 阅读全文

posted @ 2020-06-30 23:27 `Elaine 阅读(316) 评论(0) 推荐(0)

Redis 3.0.4 压缩列表
摘要:压缩列表是列表键和哈希键的底层实现之一。 1.压缩列表的构成 1.1.ziplist结构如图 zlbytes(4字节) : 表示压缩表的总长; zltail(4字节):表示压缩列表表尾节点距离列表的起始地点有多少字节; zllen(2字节):表示压缩列表包含的节点数量(当值小于uint16_max 阅读全文

posted @ 2020-06-28 22:15 `Elaine 阅读(224) 评论(0) 推荐(0)

Redis 3.0.4 整数集合
摘要:整数集合是集合键的底层实现,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会用整数集合作为集合键的底层实现。inset采用的是连续内存空间实现,默认是用16位整数,当加入元素/删除元素都要进行扩容缩容,如果新加入的元素大于16位,则要对空间进行扩充。 1、整数集合的结构 ty 阅读全文

posted @ 2020-06-19 23:05 `Elaine 阅读(151) 评论(0) 推荐(0)

Redis 3.0.4 跳跃表
摘要:跳跃表是一种有序数据结构,他是通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。在的插入和删除都可以在O(lgN)时间复杂度内搞定 Redis在两个地方用到跳跃表,一个是实现有序集合键,另一个是在集群节点中用作内部数据结构。 1.跳跃表的实现 /* ZSETs use a sp 阅读全文

posted @ 2020-06-19 22:49 `Elaine 阅读(167) 评论(0) 推荐(0)

Redis 3.0.4 字典
摘要:redis的字典使用哈希表作为底层实现,一个哈希表里面可以有多个哈希表,而每个哈希表节点就保存了字典中的一个键值对。 1.哈希表 typedef struct dictht { //哈希表 dictEntry **table; //存放一个数组的地址,数组存放着哈希表节点dictEntry的地址 u 阅读全文

posted @ 2020-06-17 23:32 `Elaine 阅读(159) 评论(0) 推荐(0)

Redis 3.0.4 链表
摘要:redis链表的实现是双向链表. 每个链表节点的结构如下: typedef struct listNode { //前置节点 struct listNode *prev; //后置节点 struct listNode *next; void *value; } listNode; 表头结构 type 阅读全文

posted @ 2020-06-14 22:00 `Elaine 阅读(126) 评论(0) 推荐(0)

Redis 3.0.4 简单动态字符串(sds)
摘要:字符串是Redis最常见的结构,Redis没有用C中的字符串,是自己构建的simple dynamic string来表示字符串 字符串的源码在sds.c/sds.h sds的基本结构 struct sdshdr { unsigned int len; //len表示当前buf中已使用字节长度 un 阅读全文

posted @ 2020-06-13 22:29 `Elaine 阅读(240) 评论(0) 推荐(0)

导航