我意识到Google App Engine中的共享内存缓存只能在很短的时间内保存键值。我已经在不同的时间戳执行了20次以下的呼叫。
_MEMCACHE_DURATION = 14*24*60*60
memcache.add(email, user_timestamp, _MEMCACHE_DURATION)
我的期望是,关键值将持续14天。但是,我发现最老的项目年龄是“1小时42分钟”
当我查看文档时,我认为有效时间最长为1个月:https://cloud.google.com/appengine/docs/python/memcache/functions#Client_add
我在想,这样的行为是否正确?
答案 0 :(得分:4)
1小时42分钟是我上次测量时的一个重大改进(这是之前的一次重大改进)。
除非您支付预留的内存缓存,否则它是共享资源。最好将其视为短期缓存,短期以分钟为单位进行衡量。充分利用此类缓存是为了提高会话中请求的性能。
答案 1 :(得分:2)
了解官方文档中共享和付费内存缓存之间的区别。共享不保证数据将保留多长时间。
官方文件:https://cloud.google.com/appengine/docs/developers-console/#memcache
内存缓存的最佳做法:https://cloud.google.com/appengine/articles/best-practices-for-app-engine-memcache
答案 2 :(得分:2)
您通常不应对memcache条目的生命周期做出假设,因为下一个请求最终可能因为各种原因找不到随时消失的条目:https://cloud.google.com/appengine/docs/python/memcache/#Python_How_cached_data_expires (如果你愿意,可以使用零寿命。)
我解释"(最多1个月)"请注意最长生命周期。