Каков наилучший способ постоянного хранения ответов HTTP для использования в веб-приложении для очистки - PullRequest
0 голосов
/ 19 декабря 2011

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

Опции, которые я исследовал до сих пор, включают:

  • модуль полки 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 голосов
/ 03 мая 2012

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

...