09 2012 档案

摘要:为自己做一份总结吧,从毕业到现在~时间过得不快不慢,从毕业到现在挣扎着已经2年多了,2年多经历的了很多事情。毕业回国不到一个礼拜,就跑到大连工作,一个造船厂,公司在长兴岛开发区,岛上几万人,一半是我们公司的员工,每天吹着海风,做大巴从岛的一头驶向另一头,晚上再回来。岛上的生活我倒是很喜欢,只是工作内容,过于单调,几十年前的ibm小型机的商用物料管理系统,代码像汇编,开发简单机械,上司是几个10倍于我们的高薪的交流不便的韩国人~ 总之,意识到没什么意思之后用了十分钟下决定离开,又用了十分钟写了辞呈~ 三天后离开大连回家休息了2周,10月份用2个月试用攒的5000元左右来到哈尔滨,跟11届的同学一 阅读全文
posted @ 2012-09-20 15:31 ~嘉言懿行~~我是煲仔饭~~ 阅读(300) 评论(0) 推荐(0)
摘要:前些天主要看了redis底层依赖的一些数据结构和事件管理库的代码,比较零散,但大体上了解了作者的设计思路.对不同规模【n】的数据采用不同的数据结构以实现对内存利用的"最优",这里的最优我想作者也没有做过严格的实验,不同的应用场景在redis上的表现肯定有所不同,如果有必要,可以再配置文件中对一些阈值做调整,比如 hash-max-zipmap-entries和 hash-max-zipmap-value,这两个参数决定了在一定数据规模的时候,是用zipmap作为哈希表数据结构还是dict。好了,开始介绍redis在没有异常的情况下默认的整个工作流程,从main函数开始:1. 阅读全文
posted @ 2012-09-10 22:39 ~嘉言懿行~~我是煲仔饭~~ 阅读(498) 评论(0) 推荐(0)
摘要:intset 实现了一个数字元素的集合。使用数组和元素的有序存放实现存取,查找过程使用二分查找法,所有插入删除的的效率为O(log2N)。 与其他数据结构类似,作者使用变编码方式实现对内存的高效利用。 初始化的intset中的数字定义为int16_t,即每个元素占用2个字节,而随着数据的插入,逐渐调整编码方式到int32_t或int64_t上代码intset.h 1 #ifndef __INTSET_H 2 #define __INTSET_H 3 #include <stdint.h> 4 5 typedef struct intset { 6 uint32_t encoding 阅读全文
posted @ 2012-09-04 11:43 ~嘉言懿行~~我是煲仔饭~~ 阅读(591) 评论(0) 推荐(0)
摘要:无疑,作为key-value的nosql存储工具,redis中最核心的数据结构便是dict本身了。 哈希表作为查找效率 O(1)的数据结构,本身也存在着一些局限性,如hash算法的选择,怎样做到元素在桶内的均匀分布,及当哈希表内元素数量增多时,如果处理随着增加的碰撞,碰撞如果较深,会严重影响哈希表的效率redis中的dict便是hash实现的一个很好的范例,dict的实现中最巧妙地细节便是采用了类似双buffer的hash扩容方式,及缓慢的哈希表转移算法。1. 哈希表扩容方式【双buffer的hash表结构】1 typedef struct dict {2 dictType *type... 阅读全文
posted @ 2012-09-03 17:58 ~嘉言懿行~~我是煲仔饭~~ 阅读(731) 评论(0) 推荐(0)