Você pode simplesmente copiar e adaptar a fonte do LRU_CACHE (veja http://hg.python.org/cpython/file/default/lib/fucools.py).
Algoritmo de armazenamento em cache para um invólucro de cliente da Web API
-
25-08-2022 - |
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
- O cache deve ser desenvolvido (sem bibliotecas externas) e executar o Python 2.6/2.7 Envs
- 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
- O cache deve ser seguro
- O conteúdo a ser armazenado em cache será a carga útil JSON das respostas da API da Web.
- 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!
Solução
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow