2011-12-19 3 views
0

Я ищу хранилище ключей/значений в python, которое было бы подходящим для хранения (и кэширования) HTTP-ответов (контент, HTTP-заголовки , временная метка) с ключом запроса. Приложение представляет собой веб-механизм скремблирования, на котором регулярно запрашивается несколько сайтов. Затем набор подпрограмм анализирует скребковые данные.Что было бы лучшим способом настойчивого хранения ответов HTTP для использования в приложении для веб-поиска?

варианты я исследованные до сих пор включают в себя: модуль Shelve

  • питон (быстро, но данные не могут быть распределены, написать только один процесс)

  • MongoDB (относительно быстро, до сих пор лучше всего подходят для того, что я ищу)

  • CouchDB (слишком медленно для этого приложения)

  • Memcached (не подходит, потому что магазин не является постоянным, и кэшированные данные не могут быть воспроизведены , поправьте меня, если я ошибаюсь)

Некоторые результаты производительности с использованием реальных данных Царапины:

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

Как насчет memcached? – Blubber

+3

Вы пробовали [redis] (http://redis.io/)? – jcollado

+0

Если вы рассмотрели memcached или redis, вы должны объяснить, почему они не работают. Если вы еще не смотрели в этом направлении, попробуйте проверить их. –

ответ

0

Я закончил тем, что использовал ограниченную коллекцию в mongodb. Каждая запись содержит URL (первичный ключ), контент и заголовки. Поскольку закрытые коллекции не позволяют удалить, для содержимого установлено значение Null, чтобы указать, что кэшированная запись была удалена.

 Смежные вопросы

  • Нет связанных вопросов^_^