Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 如何在GAE中处理缓存和数据存储同步_Google App Engine_Caching_Google Cloud Datastore - Fatal编程技术网

Google app engine 如何在GAE中处理缓存和数据存储同步

Google app engine 如何在GAE中处理缓存和数据存储同步,google-app-engine,caching,google-cloud-datastore,Google App Engine,Caching,Google Cloud Datastore,我正在编写一个小型appengine应用程序,我想开始使用数据存储。 我的应用程序有一些用户,每个用户都是一个复杂的JAVA类。 用户可能会在它们之间交换一些“点”对象,因此我需要数据可用且快速 我的问题很笼统: 我应该如何处理数据缓存? 将数据完全存储在数据存储中并在每次调用中获取数据在运行时听起来很慢。 另一方面,将数据保存在静态JAVA类中听起来很棘手,因为服务器不时会重置,数据也会被擦除。 如果我有一个主循环,就像在一个普通的控制台应用程序中一样,我可能会在一天中预定义的几个小时内保存数

我正在编写一个小型appengine应用程序,我想开始使用数据存储。
我的应用程序有一些用户,每个用户都是一个复杂的JAVA类。 用户可能会在它们之间交换一些“点”对象,因此我需要数据可用且快速

我的问题很笼统:
我应该如何处理数据缓存?
将数据完全存储在数据存储中并在每次调用中获取数据在运行时听起来很慢。
另一方面,将数据保存在静态JAVA类中听起来很棘手,因为服务器不时会重置,数据也会被擦除。
如果我有一个主循环,就像在一个普通的控制台应用程序中一样,我可能会在一天中预定义的几个小时内保存数据两次、三次。

我应该如何管理我的代码,使其能够时不时地将状态保存在数据存储中,并且不会丢失任何数据。

如果写操作的数量少于读操作, 最好使用memcache模块尝试“直写缓存”。

基本上,直写缓存的工作原理如下:

  • 对于每个写操作,程序都会更新数据存储,然后将数据备份到memcache
  • 对于每个读取操作,程序都会尝试从memcache读取。如果可以找到所需的数据,则返回,否则将从数据存储中获取数据并将结果备份到memcache

正如@lucemia所指出的,您应该使用memcache

如果使用objectify,则无需编写和缓存处理代码