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