蘑菇街的101天 — 团购重构

*PS:很长时间没有写博了.主要原因就是最近一个人在支撑蘑菇街的团购业务,分身乏术.虽然没有写出分享,但还是有个人的笔记.* 相对而言,博客的价值在于分享,但是由于很多的时侯,分享依赖的业务场景不同,所以很多的时侯并不适用,亦或者现场恢复困难,写出来的东西没有具体的实例,感觉不太稳妥. 最简单的一个就是关于innoDB索引计算的一个case.排查过程不说了,直接上结果,就是mysql在进行索引消耗计算的时侯存在一定的误差...阅读全... [阅读全文]

第一个任务 -- 店铺爬虫

关于这个项目,首先需求比较简单.或者说单一吧.唯一要做的就是将PHP传来的任务给做完.没有多余的爬取,只需要爬取一个页面上的商品描述和商店的描述.唯一好玩的一点就是需要在一周时间内 爬取180万url左右的数据.同时还要考虑对面的防刷设置.分配给的测试资源有两台16核32G的服务器. 很显然.爬虫的关键在于VPS的分配,因为一个ip访问某个网站的频率有限制.在有限的时间,要想爬取更多的网页,就需要多个vps,要多少呢.理论上,服..... [阅读全文]

阅读Redis源码(三) -- redis通信协议与事件驱动

在redis中,关于事件驱动框架的代码集中在ae.h/ae.c中.作者也在头部设置了介绍:a simple event-driven programming library. 这个框架其实很简单,核心就是一个消息 队列,同时只有一个线程负责对其进行处理,这里面的调度思想,还是简单的优先级队列,文件操作优先级永远高于时间操作.而且任务之间并不会进行抢占. 具体执行过程,可以参照如下干特图: ``` time -------...&... [阅读全文]

阅读Redis源码(二) -- 数据库及持久化策略

之前的一篇文章写了关于Redis的字典数据结构,但是,他并不是与我们直接交互的.因为我们在进行添加字段的时候,往往需要添加过期值,这一点我们在字典数据结构中没有能够得到体现. 所以,我们需要关注另外一个数据结构,**redisDb**.即Redis的数据库储存,在redis.h中,该结构体的定义如下. ``` typedef struct redisDb { dict *dict; /... [阅读全文]

阅读Redis源码(一) -- 基本数据结构

Redis 和其他很多 key-value 数据库的不同之处在于, Redis 不仅支持简单的字符串键值对, 它还提供了一系列数据结构类型值, 比如列表、哈希、集合和有序集, 并在这些数据结构类型上定义了一套强大的 API 。 通过对不同类型的值进行操作, Redis 可以很轻易地完成其他只支持字符串键值对的 key-value 数据库很难(或者无法)完成的任务。 在 Redis 的内部, 数据结构类型值由高效的数据结构和算法进行支... [阅读全文]

杭州第一周(无关技术)

好久没有写博客了。主要是因为前一段时间的期末考试,和最近一周在杭州实习。昨天为了开通电视和和房东更新洗衣机和煤气灶,忙了好久,到下午才结束,然后想去采购,结果到了商场才发现自己身上只有50块钱。。。悲剧的买了点泡面,和筷子洗发露等,正好45,然后15去吃了个饭。 今天,就因为网线和快递的问题,去了趟公司和办宽带的地方,结果,宽带很顺利,一个上午就连安装都好了,然后快递,这就是麻烦了。应该是找不到了,第一次寄快递啊,还好只是一个仓鼠... [阅读全文]