摘要: Redis是一个Key Value数据库。Redis有5种数据类型:字符串、列表、哈希、集合、有序集合。而字符串的底层实现方法之一就是使用sds。以下描述中请读者注意区分sds是指简单动态字符串这一数据结构(用大写表示)还是sdshdr头部中buf数组的起始地址(用小写表示)。 SDS源码 如下源码 阅读全文
posted @ 2017-07-17 22:13 zxin's 阅读(2675) 评论(0) 推荐(0) 编辑
摘要: 对Redis最新版(3.2.9)的源码进行分析,并介绍一些使用方法。 Redis—初探Redis Redis—数据结构之sds Redis—数据结构之list 阅读全文
posted @ 2017-07-17 20:36 zxin's 阅读(320) 评论(0) 推荐(0) 编辑
摘要: STL—对象的构造与析构 STL—内存的配置与释放 STL—vector STL—vector空间的动态增长 STL—list 阅读全文
posted @ 2017-07-17 20:31 zxin's 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 前面介绍了STL对象的构造与析构以及内存的配置与释放,那具体的容器是怎么应用STL的空间配置器的呢?这篇先介绍STL的容器vector。 vector的数据成员 vector只有4个数据成员:3个迭代器、1个内存配置器。 STL会为每个容器都设置一个内存配置器的成员,这里的内存配置器就是前面介绍的S 阅读全文
posted @ 2017-07-17 20:13 zxin's 阅读(452) 评论(0) 推荐(0) 编辑
摘要: vector空间的动态增长 vector空间的动态增长 当添加元素时,如果vector空间大小不足,则会以原大小的两倍另外配置一块较大的新空间,然后将原空间内容拷贝过来,在新空间的内容末尾添加元素,并释放原空间。vector的空间动态增加大小,并不是在原空间之后的相邻地址增加新空间,因为vector 阅读全文
posted @ 2017-07-17 20:12 zxin's 阅读(4671) 评论(0) 推荐(0) 编辑
摘要: 上一篇我们介绍了STL对象的构造与析构,这篇介绍STL内存的配置与释放。 STL有两级空间配置器,默认是使用第二级。第二级空间配置器会在某些情况下去调用第一级空间配置器。空间配置器都是在allocate函数内分配内存,在deallocate函数内释放内存。 第一级空间配置器 第一级配置器只是对mal 阅读全文
posted @ 2017-07-17 19:07 zxin's 阅读(1393) 评论(0) 推荐(0) 编辑