требуется хорошее решение для кэширования памяти и диска
-
22-09-2019 - |
Вопрос
В настоящее время я сохраняю сгенерированные HTML-страницы в кэше memcached в памяти.Это отлично работает, однако я хочу увеличить объем кэша за пределы доступной памяти.Чего бы мне действительно хотелось, так это:
- семантика memcached (т. е.ненадежно, просто кэш)
- memcached api предпочтителен (но не обязателен)
- большой кэш первого уровня в памяти (MRU)
- огромный кэш второго уровня на диске (основной)
- удалено из кэша на диске при максимальном объеме памяти с использованием LRU или LFU
- проверенная реализация
В поисках решения я нашел следующие решения, но все они в какой-то степени не соответствуют моим требованиям.Кто-нибудь знает ни о том, ни о другом:
- другие варианты, которые я еще не рассматривал
- способ заставить memcachedb выполнять выселения
Уже рассмотренными являются:
- лучше всего подходит, но не приводит к выселению:явно "не кэш"
- не вижу никакого способа произвести выселение (ни ручное, ни автоматическое)
- брошенный, без поддержки
- не хочу рекомендовать это клиентам
- не использует memcache api
- новое и непроверенное
- не хочу рекомендовать это клиентам
Решение 2
Похоже, что более поздние версии memcachedb при желании можно очистить вручную, используя команду rget команду и сохранение времени истечения срока действия в записи данных.Конечно, это означает, что я закидываю и сервер, и сеть запросами на весь блок данных, хотя мне нужен только срок действия.Не самое лучшее решение, но, похоже, единственное доступное на данный момент.
Другие советы
Я работал с Тайник и это работает очень хорошо.Он имеет кэш-память и дисковое хранилище с различными политиками удаления.Это зрелая библиотека a с хорошей поддержкой.Существует memcached api, который оборачивает EhCache, специально разработанный для поддержки GAE.
С уважением, Джонатан.