
缓存
文章平均质量分 69
还是要学会仰望
从头开始,学喜欢的技术,写踏实的博客,做上进的人
展开
-
redis之zipmap
类型介绍代码分析变量ZIPMAP_BIGLEN, zipmap的最大长度 ZIPMAP_END, zipmap的结束符 ZIPMAP_VALUE_MAX_FREE, zipmap的free部分最大长度函数zipmapNew,新建一个zipmap;unsigned char *zipmapNew(void) { unsigned char *zm = zmallo原创 2016-06-25 17:17:31 · 1087 阅读 · 0 评论 -
redis之dict
代码分析自定义类型typedef struct dictEntry { void *key; //键值 union { void *val; //自定义类型 uint64_t u64; int64_t s64; double d; } v; struct dictEntry *next;原创 2016-06-23 13:54:45 · 392 阅读 · 0 评论 -
redis命令解析之list类型
号外号外,新建Redis交流讨论群:332160890,欢迎加入!!链表类型的编码方式为:OBJ_ENCODING_QUICKLIST1、lpushCommand(client *c)使用:LPUSH key value [value …]说明:将一个或者多个value插入到key对应的链表的表头,如果不存在,则新建一个链表2、rpushCommand(client *原创 2017-03-28 14:42:01 · 340 阅读 · 0 评论 -
redis之intset
类型介绍intset是一个整型的数据集合,这里面的结构比较简单,实际上就是一个整型数组,在添加过程中,同样给该数组按照数据大小排序,这点在查找的时候比较容易,比较符合缓存的特点,另外,这里面同样给数据按照类型进行了区分,也是为了节省内容空间人为增加了程序的复杂度,但是回报还不错,实际操作过程中,许多情况下数据是同类型的,这样避免了都是用64位整型来保存数据;代码分析自定义类型t原创 2016-09-06 23:20:15 · 399 阅读 · 0 评论 -
redis之zmalloc
zmalloc介绍这部分是用来申请内存的,之所以单独成了一部分在于redis希望能够将不同系统提供的api统一起来,另外还有一部分系统无法获取malloc数目,因此在这里也进行了一部分的封装;这部分内容很简单,实际上就是malloc, calloc, realloc, free几个操作的变形代码分析使用变量used_memory,已使用的内存数; malloc_thread_sa原创 2016-08-31 17:46:04 · 1120 阅读 · 0 评论 -
redis之sds
类型介绍代码分析自定义类型struct sdshdr { //包含头信息的字符串结构体 unsigned int len; //申请的字符串长度 unsigned int free; //当前空闲的内存字节数 char buf[]; //真实存放字符串内容的地方 };定义变量代码分解sdsnewlen,根据字符串和初始长度新建一个sds原创 2016-07-04 00:02:33 · 769 阅读 · 0 评论 -
redis之ziplist
类型介绍代码分析自定义类型typedef struct zlentry { unsigned int prevrawlensize, prevrawlen; unsigned int lensize, len; unsigned int headersize; unsigned char encoding; unsigned char *p;}原创 2016-06-28 19:23:37 · 410 阅读 · 0 评论 -
redis命令解析之set类型
号外号外,新建Redis交流讨论群:332160890,欢迎加入!!集合类型的编码方式:OBJ_ENCODING_HT(SET)和OBJ_ENCODING_INTSET(INTSET)1、saddCommand(client *c)使用:SADD key value [value …]说明:添加数据到key对应的set中,如果key对应set不存在,则新建2、sremCo原创 2017-04-09 17:57:20 · 389 阅读 · 0 评论