Je me rends compte que le memcache partagé dans Google App Engine ne peut contenir la valeur-clé que pendant une très courte période. J'ai effectué l'appel suivant 20 fois, à différents horodatages.

_MEMCACHE_DURATION = 14*24*60*60
memcache.add(email, user_timestamp, _MEMCACHE_DURATION)

Je m'attends à ce que la valeur-clé dure 14 jours. Cependant, je découvre que l'âge de l'article le plus ancien est "1 h 42 min"

Lorsque je regarde la documentation, je pensais que la durée de validité pouvait aller jusqu'à 1 mois: https://cloud.google.com/appengine/docs/python/memcache/functions#Client_add

Je me demandais, un tel comportement est-il correct?

1
Cheok Yan Cheng 19 juil. 2015 à 12:59

3 réponses

Meilleure réponse

1 heure 42 minutes est une amélioration substantielle par rapport à la dernière fois que je l'ai mesuré (ce qui était alors une amélioration substantielle par rapport au temps précédent).

À moins que vous ne payiez pour un memcache réservé, c'est une ressource partagée. Il est préférable de le considérer comme un cache à court terme, où le court terme est mesuré en minutes. Une bonne utilisation de cette mise en cache consiste à améliorer les performances des requêtes au sein d'une session.

4
Dave W. Smith 19 juil. 2015 à 16:17

Découvrez la différence entre memcache partagé et payant dans les documents officiels. partagé n'est accompagné d'aucune garantie quant à la durée de conservation des données.

Documentation officielle: https://cloud.google.com/appengine/docs/developers -console / # memcache

Meilleures pratiques pour memcache: https://cloud.google. com / appengine / articles / best-practices-for-app-engine-memcache

2
Zig Mandel 30 sept. 2015 à 20:08

Vous ne devez généralement pas faire d'hypothèses sur la durée de vie d'une entrée memcache, car la toute prochaine demande peut finir par ne pas trouver l'entrée qui peut disparaître à tout moment pour diverses raisons: https://cloud.google.com/appengine/docs/python/memcache/#Python_How_cached_data_expires (zéro durée de vie si vous le souhaitez).

J'interpréterais la note "(jusqu'à 1 mois)" comme une durée de vie maximale .

2
Dan Cornilescu 21 juil. 2015 à 15:08