上一页 1 ··· 11 12 13 14 15
摘要: sds模块的具体实现: 1、sdsnewlen 根据参数生成一个sds字符串 未完待续。。。 阅读全文
posted @ 2016-03-13 22:44 扫地猿 阅读(199) 评论(0) 推荐(0) 编辑
摘要: Redis开发者在开发过程中没有使用系统的原始字符串,而是使用了自定义的sds字符串,这个模块的编写是在文件:sds.h和sds.c文件中。Redis自定义的这个字符串好像也不是很复杂,远不像nginx自定义的一样复杂,但也存在一些问题。 在.h文件中定义了一个新的类型和一个结构体分别是: 先说两个 阅读全文
posted @ 2016-03-13 22:21 扫地猿 阅读(554) 评论(0) 推荐(0) 编辑
摘要: 上一遍详细的写明了Redis为内存管理所做的初始化工作,这篇文章写具体的函数实现。 1、zmalloc_size,返回内存池大小函数,因为库不同,所以这个函数在内部有很多的宏定义,通过具体使用的库来确定到底用哪个。 2、zmalloc,内存分配函数 3.zcalloc 4、zrealloc,该函数放 阅读全文
posted @ 2016-03-13 20:15 扫地猿 阅读(754) 评论(0) 推荐(0) 编辑
摘要: Redis数据库的内存管理函数有关的文件为:zmalloc.h和zmalloc.c。 Redis作者在编写内存管理模块时考虑到了查看系统内是否安装了TCMalloc或者Jemalloc模块,这两个是已经存在很久的内存管理模块,代码稳定、性能优异,如果已经安装的话,则使用之,最后检查是否是Mac系统, 阅读全文
posted @ 2016-03-13 18:21 扫地猿 阅读(1382) 评论(0) 推荐(0) 编辑
摘要: gcc从4.1.2提供了__sync_*系列的built-in函数,用于提供加减和逻辑运算的原子操作。其声明如下: type __sync_fetch_and_add (type *ptr, type value, ...) type __sync_fetch_and_sub (type *ptr, 阅读全文
posted @ 2016-03-10 09:47 扫地猿 阅读(1854) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15