Вопрос

Я разработал Клиентская библиотека Python, которая является клиентской оберткой для веб-API: хорошей функцией будет локальный механизм кэша: это сэкономит время и пропускную способность, когда клиенты библиотеки вызывают тот же самый запрос на веб-API в разное время.

У меня очень мало требований

  1. Кэш должен быть разработан (без внешних библиотек) и запустить Python 2.6/2.7 Envs
  2. Библиотека должна обеспечить единый интерфейс, так что можно использовать обертки внешнего кеша (например: memcached), которые будут впрызлены зависимостью
  3. Кэш должен быть защищен потоком
  4. Контент, который будет кэширован, будет полезной нагрузкой JSON ответов Web API.
  5. Данные, предоставленные веб -API, различаются в разные времена крыс: в примере наблюдаемая погода в городе может варьироваться каждый час, в то время как прогноз погоды 15 дней может варьироваться каждые 5 дней или около того.

Какой самый простой алгоритм можно использовать?

Я думал об алгоритме LRU (меньше всего недавно), но я думаю, что другие альтернативы могут быть оценены - я вообще не экспертизирован о кэшах!

Это было полезно?

Решение

Вы можете просто скопировать и адаптировать источник из lru_cache (см. http://hg.python.org/cpython/file/default/lib/functools.py).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top