Question

J'ai développé un Bibliothèque client Python, qui est un emballage client pour une API Web: une fonctionnalité agréable à have serait un mécanisme de cache local: cela gagnerait du temps et de la bande passante lorsque les clients de la bibliothèque invoquent la même demande sur l'API Web à différents moments.

J'ai très peu d'exigences

  1. Le cache doit être développé (pas de bibliothèques externes) et exécuter Python 2.6 / 2.7 envs
  2. La bibliothèque doit fournir une interface uniforme, de sorte qu'il est possible d'utiliser des emballages de cache externe (par exemple: memcached), qui seront injectés à la dépendance
  3. Le cache doit être filial
  4. Le contenu à mettre en cache sera la charge utile JSON des réponses API Web.
  5. Les données fournies par l'API Web varient à différents rats: par exemple, la météo actuellement observée sur une ville peut varier toutes les heures, tandis que les prévisions météorologiques de 15 jours peuvent varier tous les 5 jours environ.

Quel est l'algorithme le plus simple qui puisse être utilisé?

Je pensais à un algorithme LRU (le moins récemment utilisé) mais je suppose que d'autres alternatives peuvent être évaluées - je ne suis pas du tout expert sur les caches!

Était-ce utile?

La solution

Vous pouvez simplement copier et adapter la source de LRU_CACH (voir http://hg.python.org/cpython/file/default/lib/functools.py).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top