Pergunta

Atualmente, estou armazenando páginas HTML geradas em um cache na memória. Isso funciona muito bem, no entanto, estou querendo aumentar a capacidade de armazenamento do cache além da memória disponível. O que eu realmente gostaria é:

  1. Semântica Memcached (ou seja, não é confiável, apenas um cache)
  2. API Memcached preferida (mas não necessária)
  3. Grande cache de primeiro nível na memória (MRU)
  4. enorme cache de segundo nível no disco (principal)
  5. despejado do cache no disco no máximo de armazenamento usando LRU ou LFU
  6. implementação comprovada

Ao procurar uma solução, encontrei as seguintes soluções, mas todas elas sentem falta das minhas marcas de alguma forma. Alguém sabe de:

  • Outras opções que eu não considerei
  • uma maneira de fazer o memcachedb fazer despejos

Já considerado são:

MemcachedB

  • Melhor ajuste, mas não faz despejos: explicitamente "não é um cache"
  • Não consigo ver nenhuma maneira de fazer despejos (manual ou automático)

Cache de Tugela

  • abandonado, sem apoio
  • Não quero recomendá -lo aos clientes

nmdb

  • Não usa API do Memcache
  • novo e não comprovado
  • Não quero recomendá -lo aos clientes
Foi útil?

Solução 2

Parece que as versões posteriores do memcachedb podem ser limpas manualmente, se desejar usar o rget comando e armazenando o tempo de expiração no registro de dados. Obviamente, isso significa que eu libero o servidor e a rede com solicitações para todo o bloco de dados, mesmo que eu queira apenas o tempo de expiração. Não é a melhor solução, mas aparentemente a única atualmente disponível.

Outras dicas

Eu trabalhei com Ehcache E funciona muito bem. Possui em cache de memória e armazenamento de disco com diferentes políticas de despejo. É uma biblioteca madura A com bom suporte. Há uma API em memcached que envolve o ehcache, especialmente desenvolvido para o suporte do GAE.

Atenciosamente, Jonathan.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top