走在前往架构师的路上

专注于分布式计算,大数据,数据挖掘,机器学习算法等领域的研究

Redis源码分析(二十五)--- zmalloc内存分配实现

时间过的很快,经过快1个月的时间学习,本人对Redis源代码的分析已经超过了一半,上几次的学习,我主要的是对于Redis工具类的代码进行了学习。后面的几天我将会学习Redis代码中的一些封装类的实现,这些封装类在整个Redis系统中都可能普遍用到。比如说我马上要分析的在zmalloc的内存封装的实...

2014-10-31 19:10:47

阅读数:5133

评论数:2

Redis源码分析(二十四)--- tool工具类(2)

在上篇文章中初步的分析了一下,Redis工具类文件中的一些用法,包括2个随机算法和循环冗余校验算法,今天,继续学习Redis中的其他的一些辅助工具类的用法。包括里面的大小端转换算法,sha算法在Redis中的实现和通用工具类算法util.c。          先来看看大小端转换算法,大小端学习...

2014-10-31 09:49:33

阅读数:6778

评论数:0

Redis源码分析(二十三)--- CRC循环冗余算法和RAND随机数算法

今天开始研究Redis源码中的一些工具类的代码实现,工具类在任何语言中,实现的算法原理应该都是一样的,所以可以借此机会学习一下一些比较经典的算法。比如说我今天看的Crc循环冗余校验算法和rand随机数产生算法。             CRC算法全称循环冗余校验算法。CRC校验的基本思想是利用线...

2014-10-29 10:12:59

阅读数:4329

评论数:0

Redis源码分析(二十二)--- networking网络协议传输

上次我只分析了Redis网络部分的代码一部分,今天我把networking的代码实现部分也学习了一遍,netWorking的代码更多偏重的是Client客户端的操作。里面addReply()系列的方法操作是主要的部分。光光这个系列的方法,应该占据了一半的API的数量。我把API分成了3个部分: ...

2014-10-28 16:05:07

阅读数:3989

评论数:0

Spark基础概况

最近本人对各种分布式计算平台研究的比较火热,上周的时间简单了了解了Storm的用法,今天马不停蹄的开始了新的学习。同样是非常流行的分布式平台,Spark,跟Hadoop属于同类型的。Spark和Storm一样,作为最近才刚刚开源出来的一个项目,学习的资料相当少,大家都还在学习阶段,所以,我目前的学...

2014-10-27 21:11:54

阅读数:2422

评论数:0

Redis源码分析(二十一)--- anet网络通信的封装

昨天非常轻松的分析完Redis的事件驱动模型之后,今天我来看看anet的代码,anet是Redis对于Client/Server的网络操作的一个小小封装。代码中对此文件的官方解释为: /* anet.c -- Basic TCP socket stuff made a bit less bori...

2014-10-27 10:01:17

阅读数:4490

评论数:0

Redis源码分析(二十)--- ae事件驱动

事件驱动这个名词出现的越来越频繁了,听起来非常高大上,今天本人把Redis内部的驱动模型研究了一番,感觉收获颇丰啊。一个ae.c主程序,加上4个事件类型的文件,让你彻底弄清楚,Redis是如何处理这些事件的。在Redis的事件处理中,用到了epoll,select,kqueue和evport,ev...

2014-10-26 10:16:21

阅读数:5534

评论数:0

Redis源码分析(十九)--- replication主从数据复制的实现

replication的英文单词的原意是“复制”的意思,replication文件作为我在Data目录下的分析的最后一个文件,足以说明他的重要性,代码量1800+,的确非常难啃。只能说个我看代码下来的大致印象吧,要我画个结构图好好理理这里面各个API的关系图,这个我目前还真做不到。说到主从复制,这...

2014-10-25 19:26:26

阅读数:3459

评论数:0

Storm高级属性

之前写了2篇文章讲述了Storm的基本知识。最近也学习了Storm的高级属性了,单纯粹还是属于了解的状态。我就简单介绍几个比较简单的属性。         1.DRPC。简称分布式RPC,模型图: 用户直接面对的是DRPC Server,避开了所有的拓扑逻辑,Storm提供了一个名为L...

2014-10-24 21:39:16

阅读数:1931

评论数:0

Redis源码分析(十八)--- db.c内存数据库操作

我们知道Redis数据库作为一个内存数据库,与memcached比较类似,基本的操作都是存储在内存缓冲区中,等到缓冲区中数据满后,在持久化到磁盘中。今天,我主要研究了对于redis中对于内存数据库的操作。与普通的数据操作比较,并没有什么特别多的其他的一些操作。下面是我分类出的一些API: /*-...

2014-10-24 20:23:41

阅读数:3092

评论数:1

Redis源码分析(十七)--- multi事务操作

redis作为一非关系型数据库,竟然同样拥有与RDBMS的事务操作,不免让我觉得比较惊讶。在redis就专门有文件就是执行事务的相关操作的。也可以让我们领略一下,在Redis的代码中是如何实现事务操作。首先亮出mulic.c下面的一些API。 /* =======================...

2014-10-23 10:08:17

阅读数:3794

评论数:0

Redis源码解析(十六)--- config配置文件

每个系统都会有类似一个config配置文件,config文件里的内容想想都知道,一定就是那么一些固定的一行行的属性代码了,今天在看redis代码中的config属性,那拉下来的一笔,的确多,目测在50至100个属性左右。如果就此将config每个属性代表什么意思不是我的风格,也一定是很乏味的,所以...

2014-10-22 19:06:47

阅读数:3006

评论数:0

Storm的基本知识

上篇文章本人简单的介绍了Storm的起源,今天本人又继续学习了Storm的基本的一些知识,基本了解了他的基本用法,还好,不算太难,如果大家了解了Hadoop的MapReduce模型的话,看这个也是非常类似的。在了解Storm的原型时,首先了解一些概念。 1.Tuple(元组),作为消息传递的基本...

2014-10-22 09:01:20

阅读数:1687

评论数:0

Storm的起源概况

现在是BigData大数据的时代,最近几年最火的是当然属于Hadoop平台了,但是Hadoop虽然说比较好用,但是他的延时性,比较差的实时计算能力被人们所诟病。所以一个比较强大的分布式实时计算平台应用而生,他的名字叫Storm。           要说Storm的起源,得先说说一个很有名的社交...

2014-10-20 20:52:13

阅读数:2035

评论数:0

Redis源码解析(十五)--- aof-append only file解析

继续学习redis源码下的Data数据相关文件的代码分析,今天我看的是一个叫aof的文件,这个字母是append ONLY file的简称,意味只进行追加文件操作。这里的文件追加记录时为了记录数据操作的改变记录,用以异常情况的数据恢复的。类似于之前我说的redo,undo日志的作用。我们都知道,r...

2014-10-20 19:07:59

阅读数:3368

评论数:2

Redis源码分析(十四)--- rdb.c本地数据库操作

过去2,3天内把redis内部的测试相关包分析了一遍,总体感觉还是比较容易的,总共5个文件,也让我们涨了一下见识,什么叫内置的测试函数。今天,我把目标进行了转移,下面我准备继续学习与代码逻辑稍稍无关的模块,数据层,在我的分类中,就是在Data的文件包。在这个里面,首当其冲,我研究了rdb.c,直接...

2014-10-19 19:39:46

阅读数:3392

评论数:1

Redis源码分析(十三)--- redis-benchmark性能测试

今天讲的这个是用来给redis数据库做性能测试的,说到性能测试,感觉这必然是高大上的操作了,redis性能测试,测的到底是哪方面的性能,如何测试,通过什么指标反映此次测试的性能好坏呢,下面我通过源码给大家做一一解答。      redis做的性能测试时对立面的基本操作做的检测,比如Client客...

2014-10-18 15:45:19

阅读数:4655

评论数:0

Redis源码分析(十二)--- redis-check-dump本地数据库检测

这个文件我在今天分析学习的时候,一直有种似懂非懂的感觉,代码量700+的代码,最后开放给系统的就是一个process()方法。这里说的说的数据库检测,是针对key的检测,会用到,下面提到的结构体: /* Data type to hold opcode with optional key nam...

2014-10-17 20:03:57

阅读数:4624

评论数:1

Redis源码分析(十一)--- memtest内存检测

今天我们继续redis源码test测试包下的其他文件,今天看完的是memtest文件,翻译器起来,就是memory test 内存检测的意思,这个文件虽然说代码量不是很多,但是里面的提及了很多东西,也给我涨了很多见识,网上关于memtest这种类似的redis内部边缘的文件解析基本没有,所以自己从...

2014-10-17 08:52:03

阅读数:4692

评论数:1

Redis源码分析(十)--- testhelp.h小型测试框架和redis-check-aof.c日志检测

分析了一段时间的struct结构体的redis代码,越到最后越发现其实很多代码都是大同小异的。在struct包中还有1,2个文件还没分析,是关于set集合的一些东西,就放在下次分析好了,在选择下个分析的对象时,我考虑了一下,最后决定先把简单的test包下的东西看看一下,毕竟结构体这块有点复杂,所以...

2014-10-16 08:47:45

阅读数:2822

评论数:0

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