持久存储HTTP响应以便在Web抓取应用程序中使用的最佳方法是什么

时间:2011-12-19 15:29:01

标签: python mongodb couchdb distributed-caching

我正在寻找python中的键/值存储,它适用于保存(和缓存)由请求URL键入的HTTP响应(内容,HTTP标头,时间戳)。该应用程序是一个Web抓取引擎,定期查询多个站点。然后,一组例程分析刮取的数据。

到目前为止我调查的选项包括:

  • python搁置模块(快速但数据不能分发,只能通过单个进程写入)

  • mongodb(相对较快,到目前为止最适合我要找的东西)

  • couchdb(此应用程序太慢)

  • memcached(不适合,因为商店不是持久性的,而缓存的数据不可能 复制,纠正我,如果我错了)

使用真实抓取数据的一些性能结果:

python shelve:           3500 reads/second
couchdb (couchdbkit):      33 reads/second
mongodb (pymongo):       2300 reads/second
redis:                   1200 reads/second                   

1 个答案:

答案 0 :(得分:0)

我最终在mongodb中使用了上限集合。每个条目都包含url(主键),内容和标题。由于上限集合不允许删除,因此将内容设置为Null以指示已删除缓存条目。