如何将数据存储区查询存储到Go AppEngine中的memcache?

时间:2013-12-31 16:46:27

标签: google-app-engine go google-cloud-datastore

我正在使用Golang开发Appengine。

我在数据存储上有大约1000个实体。

当我查询所有实体(q.GetAll(...))时,Datstore Read OperationsDatastore Small Operations运行大约2%的使用率(1k的50k)。 使用KeysOnly()Project(..something...)时也是如此。

我已经阅读了一些文章来解决这个问题,我必须将数据存储区查询存储到memcache 。 但我找不到怎么做。

那么如何在Go AppEngine中向/从memcache存储/检索数据存储区查询?

还是有其他方法可以减少数据存储读取/小操作使用吗?

我需要你的帮助。 谢谢。

2 个答案:

答案 0 :(得分:0)

不缓存查询。如果您的实体很小,则可以减少使用projection query并减少到small costs。有关生成必要搜索索引的信息,请查看end of the article

答案 1 :(得分:0)

最佳做法是使用KeysOnly()进行查询,并为密钥缓存每个调用datastore.Get()

算法如下:

  • 添加实体后,通过自己的密钥将其添加到缓存中
  • 在缓存中获取检查
    • 如果不是,则从数据存储中取出并将其添加回缓存
    • 如果从缓存中使用它

如何使用documentation中描述的memcache。