хочу хорошее решение для кэширования памяти + диска - PullRequest
2 голосов
/ 23 февраля 2010

В настоящее время я храню сгенерированные HTML-страницы в кэше памяти в памяти. Это прекрасно работает, однако я хочу увеличить емкость кеша сверх доступной памяти. Что бы я действительно хотел, это:

  1. семантика memcached (т.е. не надежная, просто кеш)
  2. memcached api предпочтительно (но не обязательно)
  3. большой кэш первого уровня в памяти (MRU)
  4. огромный дисковый кэш второго уровня (основной)
  5. изгнан из дискового кэша при максимальном хранении с использованием LRU или LFU
  6. проверенная реализация

В поисках решения я нашел следующие решения, но все они каким-то образом пропускают мои оценки. Кто-нибудь знает либо:

  • другие варианты, которые я не рассматривал
  • способ заставить memcachedb делать выселения

Уже учтены:

memcachedb

  • лучше всего подходит, но не делает выселений: явно "не кеш"
  • не видит способа выселения (ручного или автоматического)

кэш Тугелы

  • заброшен, без поддержки
  • не хочу рекомендовать его клиентам

nmdb

  • не использует memcache api
  • новый и недоказанный
  • не хочу рекомендовать его клиентам

Ответы [ 3 ]

0 голосов
/ 25 февраля 2010

Кажется, что более поздние версии memcachedb могут быть очищены вручную, если это необходимо, с помощью команды rget и сохранением времени истечения в записи данных. Конечно, это означает, что я обрабатываю и сервер, и сеть запросами на весь блок данных, хотя мне нужно только время истечения. Не лучшее решение, но, похоже, единственное доступное в настоящее время.

0 голосов
/ 29 мая 2010

Я работал с EhCache , и он работает очень хорошо. Он имеет в кэш-памяти и на диске с различными политиками вытеснения. Это зрелая библиотека с хорошей поддержкой. Существует memcached api, в который входит EhCache, специально разработанный для поддержки GAE.

С уважением, Джонатан.

0 голосов
/ 23 февраля 2010
...