1
xshwy 2018 年 5 月 18 日
丢缓存慢慢写
|
2
wuqiangroy 2018 年 5 月 18 日
中间加一个 redis
|
3
Hopetree 2018 年 5 月 18 日
队列
|
4
Ultraman 2018 年 5 月 18 日 via Android
如果不是面试的话……把获取数据的频率放慢点
|
5
Luckyray 2018 年 5 月 18 日 via iPhone
数据结构差别不大吧……用最简单的数组?多加几个硬盘应该更好使
|
6
zarte 2018 年 5 月 18 日
看获取到的数据量,如果多无解的,除非降低爬虫爬取速度。少可以缓存队列啥的。
|
7
xiaol825 2018 年 5 月 18 日
如果进来的数据量远大于能写入的,队列只能缓解。还是要想办法优化数据写入的速度才行。
|
8
q9REUgpVVCU77pWj 2018 年 5 月 18 日
网络 IO 比本地 IO 快?还真没碰到过。一般都爬取的时候多开点,扔队列里慢慢写倒是有的。
|
9
Leigg 2018 年 5 月 18 日 via Android
保存到数据库,开多线程写。
关数据结构什么事? |
10
goreliu 2018 年 5 月 18 日 via Android
意思应该是这样,比如从网络上获取每一千份数据,写入一次本地数据,所以前者频率更高。可以使用双 buffer,一个满后,切换 buffer,将满的写入硬盘后清空,这样互不干扰。具体 buffer 是数组、队列还是更复杂的结构,要看具体数据格式。
|
11
tabris17 2018 年 5 月 18 日
究竟是频率还是效率
如果是频率的话,实在看不出两者有什么相互影响的关联 |
12
337136897 2018 年 5 月 19 日
多买点固态硬盘
|
13
jssyxzy 2018 年 5 月 19 日
message queue
写多开几个线程. |
14
jssyxzy 2018 年 5 月 19 日
说错了,
没看清楚,如果写比较慢,如果不管也可以实时写; 不过估计题主的意思是写的放在一起写, 那可以做一个 batch 写,每个一段时间写;其他时间写线程休眠即可. |
15
gabon 2018 年 5 月 20 日 via Android
生产者消费者模型,blockingqueue,redis 缓存,kafka 队列,要不加内存,要不加硬盘
|
16
Nick2VIPUser 2018 年 5 月 21 日
是否可以这样理解这个题目:
有一个爬虫,本地采用数据结构 A 存数据, 由于从网络上获取数据的频率快,本地写入数据的频率慢,这里做一个假设: 十秒钟获取 1000 条数据,但是十秒钟才能插入一次数据这样的频率, 因此,在插入数据之前,这 1000 条数据采用数据结构 B 来保存 意味着必须批量插入到本地的数据结构 A 中, 试着思考一下这个需求:用什么数据结构好,也就是 A 和 B 应该是什么数据结构呢,什么数据结构实现了这种场景下最优时间复杂度和空间复杂度? 这个题目还真不好理解... |