在Google App Engine中使用Memcache

Manjoor:

我已经使用GAE创建了一个应用。我希望每天有10万个请求。目前,对于每个请求应用程序,在执行所需的任务之前需要查找4个表和8个diff列。

这4个表是我的主表,具有5k,500、200和30条记录。小于1 MB(限制)。

现在,我想将主记录放入内存缓存中,以加快访问速度并减少RPC调用。当任何用户更新母版时,我将替换memcache对象。

我需要社区对此的建议。

可以更改当前设计吗?

如何将4个主表数据放入内存缓存?

这是目前应用程序的工作方式

  1. 100个用户访问同一应用程序页面。
  2. 它们提供了唯一的标识令牌和3个其他参数(比如说p1,p2和p3)。
  3. 我的Servlet收到了请求。
  4. 应用程序通过令牌获取用户表并检查启用状态。
  5. 应用程序获取另一个表(例如department)并检查p1是否存在。如果存在,请检查启用状态。
  6. 如果以上返回true,则根据参数p2查询服务表以检查是否为此用户启用了该服务,并检查Service EndDate。
  7. 根据p3长度,检查另一个表的可用性。
尼克·约翰逊(Nick Johnson):

您不应该考虑将表插入到内存缓存中。相反,请使用“乐观缓存”策略:每次需要执行要缓存的操作时,请先尝试在内存缓存中查找它,如果失败,则从数据存储区中获取它,然后将其存储在内存缓存中。这是一个例子:

def cached_get(key):
  entity = memcache.get(str(key))
  if not entity:
    entity = db.get(key)
    memcache.set(str(key), entity)
  return entity

但是请注意,缓存单个实体的回报率很低-数据存储区执行提取的速度相当快。缓存查询结果或呈现的页面将大大提高速度。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Google App Engine的Memcache(Java)是否是全局缓存?

Google App Engine:是Memcache还是Static变量?

您将在Google App Engine中使用哪种Java框架?

在Google App Engine和GWT中使用SOAP Web服务

Google App Engine-JCache还是Memcache API?

在Google App Engine中使用低级API进行数据存储?不好吗

Google App Engine多快?

可在Google App Engine中使用的基于Java的Atom / RSS库

如何在Google App Engine中使用Gin-gonic中间件?

我可以在Google App Engine(标准环境)中使用Goroutines吗?

Google App Engine与Firebase

在Google App Engine中使用JSON请求(Go编程语言)

我可以在Google App Engine模块中使用TensorFlow吗?

在Google App Engine中使用Docker compose

在Google App Engine中使用NDB按BooleanProperty进行过滤

在Google Cloud App Engine中使用php扩展名

在Google App Engine中使用Firebase身份验证

Google App Engine数据存储-在投影和过滤器中使用StructuredProperty查询

在Google App Engine灵活环境中使用stream_with_context在烧瓶中加载栏

在Google App Engine项目中使用Firestore

如何在Google App Engine中使用Facebook PHP SDK?

如何在Webjars中使用Google App Engine?

使用webapp2在Python中使用Google App Engine进行的会话

我应该在Google App Engine中使用会话吗?

如何在Google App Engine中使用游标?

如何在PHP Google App Engine中使用Composer

我们可以在Google App Engine应用程序中使用AsyncHttpClient吗

在生产中使用Google App Engine和数据存储区

如何在 Google App Engine 中使用任务队列 API?