如何构建一个通用的垂直爬虫平台?

之前做爬虫时,在公司设计开发了一个通用的垂直爬虫平台,后来在公司做了内部的技术分享,这篇文章把整个爬虫平台的设计思路整理了一下,分享给大家。写一个爬虫很简单,写一个可持续稳定运行的爬虫也不难,但如何构建一个通用化的垂直爬虫平台?这篇文章,我就来和你分享一下,一个通用垂直爬虫平台的构建思路。爬虫简介首

Redis的慢查询分析

Redis作为内存数据库,拥有非常高的性能,单个实例的QPS能够达到10W左右。但我们在使用Redis时,经常时不时会出现访问延迟很大的情况,如果你不知道Redis的内部实现原理,在排查问题时就会一头雾水。很多时候,Redis出现访问延迟变大,都与我们的使用不当或运维不合理导致的。这篇文章我们就来分

ehcache之offheap

一、背景offheap作为摆脱gc的本地缓存来使用,对于缓存大量数据和提升应用的性能大有裨益。EHCache的offheap层直接使用了Terracotta-OSS开源的offheap-store作为底层实现。但是offheap-store包含了一系列的算法和数据结构的设计和使用,很多地方借鉴了操作

H2的MVStore

翻译自http://www.h2database.com/html/mvstore.html转载请著名出处,及译者信息。第一次翻译,诸多不妥请谅解,谢谢。概述MVStore是一个持久化的、日志结构式的kv存储。本计划用它作为H2的下一代存储子系统,但你也可以在一个不涉及JDBC或者SQL的应用中直接

HAMT 简介

在之前的一个系列的文章里,我们从基本原理开始,一步步实现了基于VectorTrie的持久化List数据结构。接下来将要研究的是使用HAMT这一数据结构实现持久化HashTable。持久化数据结构简介这篇文章里,我们对比各种可以用来实现持久化数据结构的方案,详细介绍了VectorTrie这种数据结构,

Vector Trie 的实现

这篇文章是系列文章的一部分,如果还没有浏览过文章的其它部分请参考:持久化数据结构简介VectorTrie的实现(本文)Transient及持久化首先我们来回顾一下VectorTrie的设计思路,为了代替ArrayList这种数据结构以及兼顾高性能的随机访问和内存使用,VectorTrie主要采用了以

Transient 及持久化

这篇文章终于来到了实现持久化List的最后一步:实现Transient和持久化的功能。这篇文章是系列文章的一部分,如果还没有浏览过文章的其它部分请参考:持久化数据结构简介VectorTrie的实现Transient及持久化(本文)在之前的文章中,我们已经看到了如何实现一个VectorTrie,也知道

持久化数据结构简介

作为系列博客的第一篇,这篇博客将会先给出一些持久化数据结构的简介并以最简单的List(列表)数据结构为例,介绍一些常见的持久化数据结构实现方法。这一个系列的文章都主要参考了UnderstandingPersistentVector这篇非常经典的文章,其中一些章节甚至可以看作是对它内容的翻译。建议有兴

redis的持久化机制

redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失。Redis为我们提供两种持久化的机制,分别是快照RDB和AOF。注意:在redis4.0时候新增了混合持久化。将rbd的内容和增量和aof放在一起。这里的aof是rbd开始到结束之间增量的日志。快照(

基于布尔表达式的广告索引设计

问题背景广告主在广告投放平台勾选定向条件之后,当用户发起一个请求之后,需要广告引擎快速筛选出符合定向条件的广告。我们当然可以想到如下的代码结构:Attributes=list<Attribute>//用户的流量标签,例如:用户的年龄、性别...for(Adad:ads){checkatt
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×