2010-04-30 8 views
2

Existe-t-il un support pour l'expiration glissante dans le service GAc Memcache? Je peux faire une implémentation brute où après chaque get() je fais un put(). Cela va effectivement réinitialiser le temps d'expiration, mais ce n'est évidemment pas une solution efficace.Google App Engine Memcache - Expiration du glissement

Des indications sur la façon dont je peux implémenter cela plus efficacement?

Merci, Keyur

+0

J'ai étendu ma réponse en fonction des documents pour MemCache. –

Répondre

3

Un cache est généralement un LRU (Least Recently Used). Il n'est pas recommandé de manipuler ceci, si vous utilisez probablement le mauvais mécanisme. Cela dit, votre système devrait fonctionner dans la plupart des cas, encore une fois, mais pourquoi?

Comme par http://code.google.com/appengine/docs/java/memcache/overview.html

Comment Expire données mises en cache Par défaut, les valeurs stockées dans memcache sont conservés aussi longtemps que possible. Les valeurs peuvent être expulsées du cache lorsqu'une nouvelle valeur est ajoutée au cache si le cache a peu de mémoire. Lorsque les valeurs sont expulsées en raison de la pression de la mémoire, les valeurs les moins récemment utilisées sont évincées en premier. L'application peut fournir un délai d'expiration lorsqu'une valeur est stockée, soit en nombre de secondes par rapport à l'ajout de la valeur, soit en tant qu'heure absolue Unix à l'avenir (nombre de secondes à partir du 1er janvier 1970 à minuit) . La valeur sera expulsée au plus tard cette fois, bien qu'elle puisse être expulsée pour d'autres raisons. Dans de rares circonstances, les valeurs peuvent également disparaître du cache avant l'expiration pour des raisons autres que la pression de la mémoire. Même si memcache résiste aux défaillances de serveur, les valeurs memcache ne sont pas enregistrées sur le disque. Un échec du service peut donc entraîner l'indisponibilité des valeurs. En général, une application ne doit pas s'attendre à ce qu'une valeur mise en cache soit toujours disponible.

+0

Si le memcache GAE est en effet LRU alors je suis d'or. Y a-t-il des documents sur LRU? – Keyur