Pergunta

Eu desenvolvi a Biblioteca do cliente Python, que é um invólucro de cliente para uma API da Web: um recurso agradável de ter seria um mecanismo de cache local: isso economizaria tempo e largura de banda quando os clientes da biblioteca invocam a mesma solicitação na API da Web em momentos diferentes.

Eu tenho muito poucos requisitos

  1. O cache deve ser desenvolvido (sem bibliotecas externas) e executar o Python 2.6/2.7 Envs
  2. A biblioteca deve fornecer uma interface uniforme, para que seja possível usar o mecanismo de cache externo (por exemplo: memcached), que serão injetados de dependência
  3. O cache deve ser seguro
  4. O conteúdo a ser armazenado em cache será a carga útil JSON das respostas da API da Web.
  5. Os dados fornecidos pela API da Web variam em ratos diferentes de tempo: no exemplo, o clima atualmente observado em uma cidade pode variar a cada hora, enquanto 15 dias a previsão do tempo pode variar a cada 5 dias ou mais.

Qual é o algoritmo mais simples que pode ser usado?

Eu estava pensando em um algoritmo LRU (menos usado), mas acho que outras alternativas podem ser avaliadas - não sou especialista em caches!

Foi útil?

Solução

Você pode simplesmente copiar e adaptar a fonte do LRU_CACHE (veja http://hg.python.org/cpython/file/default/lib/fucools.py).

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