我有一个网络应用程序,每天午夜运行一个cron作业,然后使用该数据在接下来的24小时内填充HTML模板。我不关心保留历史价值,只关注最新的历史价值。
考虑到这一点,您是否看到我在cron作业完成后缓存值然后只是从一天中的memcached中获取GET请求的值而不是查询数据库(GAE数据流)时遇到的任何问题?
我正在使用python和GAE。
谢谢。
答案 0 :(得分:3)
Memcached数据不持久性。您的应用不得依赖它。可以从那里获得速度,但是缓存可以随时被逐出,所以你必须有一个永久存储作为数据不存在的备份。
memcache documentation解释了这一点:
但是,在考虑是否仅在memcache中存储值而不是由其他持久性存储支持时,请确保在值突然不可用时应用程序的行为可接受。值可以随时从memcache到期,并且可以在为值设置的到期截止日期之前到期。例如,如果突然缺少用户的会话数据会导致会话出现故障,那么除了内存缓存外,该数据可能应该存储在数据存储区中。
答案 1 :(得分:0)
如果您使用缓存背后有原因,那么我认为这是因为访问数据库是耗费资源的,并且随着请求的增加,响应时间实际上会下降。缓存是一个临时存储,但有缓存软件可以让你使用多个缓存拓扑,如“复制缓存”,其中一个对象有一个对象的两个副本,从而排除了数据库跳转的需要,我开始想到这个想法从上面关于memcached的引用来看,这不是一个可用的选项。尝试使用NCache。或者您可以阅读更多相关信息:http://www.alachisoft.com/ncache/