自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 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 378

原创 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 1052

原创 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 373

原创 memcached的LRU部分

LRU部分的功能介绍LRU部分的整体逻辑LRU部分的代码分解1、start_lru_maintainer_thread函数,;int start_lru_maintainer_thread(void) { int ret; pthread_mutex_lock(&lru_maintainer_lock); do_run_lru_maintainer_t

2016-06-18 15:05:41 1519

原创 memcached学习的整体流程

整体流程的介绍memcached的整体结构采用的是多线程框架,这也是为什么memcached中很多锁的原因,我个人对这一点不是很喜欢,一是因为看起来很复杂,二是感觉性能也会因此而受到影响;memcached的多线程框架采用的是一对多的策略,其中主线程主要用来监听新的网络连接,工作线程用来处理请求,主线程和工作线程是通过管道pipe来实现的。 在每个请求过程中,请求以及响应的过程都是通过一个状

2016-06-18 11:53:53 504

原创 memcached学习之item部分

item部分的功能介绍item部分是memcached的存储结构,所有的读写修改等操作都是通过对item的处理来进行的,另外对于缓存来说,其能够使用的内存空间是有限的,如果将请求数少或者过期的数据清理后将内存腾出来也是必备的一个功能,这里面memcached的策略主要就是LRU方式和lazy expiration方法,这篇里面只会涉及lazy expiration方法;不考虑LRU方法的原因是

2016-06-16 18:37:11 1323

原创 memcached学习之slabs部分

slabs部分的功能介绍slabs部分的整体逻辑slabs部分的代码分解自定义类型typedef struct { //chunk_size, 单个数据块的大小 unsigned int size; /* sizes of items */ //单个slab中包含的item数量,其实也就是chunk的数目 unsigned int pe

2016-06-15 15:12:46 993

原创 memcached学习之assoc部分

assoc部分的功能介绍这部分主要是一个hash表(hash函数采用Jenkins_hash),用于保存item数据的地址,主要是用来快速查找item信息,这是因为一般情况下缓存或存储数据库的读写频率是不一样的,读频率会很大,这样如果每次都采用遍历操作,会严重影响性能。其实这种做法和DB是很相似的地方,只不过真正的DB采用的树结构,这里由于在内存中存储,不涉及磁盘等细节,采用hash能够更加简

2016-06-14 13:36:56 1440

原创 memcached学习之总览

题记兴之所起,应立马辅以行动,方得始终。最近工作不是那么忙了,想找几份开源代码来提高下自己,一来可以提高下自己的知识面,二来可以学习良好的代码风格。因为之前的工作稍微了解过缓存系统,因此想借这次机会好好学习下缓存系统的设计以及构造,这里主要是想学习下memcached和redis两个系统,作为服务端缓存软件的佼佼者,它们都有着良好的性能以及优秀的代码架构,在接下来的时间里面,我想对两份源码阅读

2016-06-12 20:54:26 331

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除