Я разработал клиентскую библиотеку Python, которая представляет собой клиентскую оболочку для веб-API. особенностью будет механизм локального кэширования: это позволит сэкономить время и пропускную способность, когда клиенты библиотеки вызывают один и тот же запрос в веб-API в разное время.
У меня очень мало требований
- кеш должен быть разработан (без внешних библиотек) и запущен Python 2.6/2.7 envs
- библиотека должна предоставлять единый интерфейс, чтобы можно было использовать внешние механизмы кэширования (например, memcached) обертки, которые будут внедряться зависимостями
- кеш должен быть потокобезопасным
- Кэшируемое содержимое будет полезной нагрузкой JSON ответов веб-API.
- данные, предоставляемые веб-API, меняются в разное время: например, наблюдаемая в настоящее время погода над городом может меняться каждый час, а прогноз погоды на 15 дней может меняться каждые 5 дней или около того.
Какой самый простой алгоритм можно использовать?
Я думал об алгоритме LRU (наименее недавно использованный), но я думаю, что можно оценить и другие альтернативы - я совсем не эксперт в кэшах!