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 是否可以将实体实例放入memcache服务?_Google App Engine - Fatal编程技术网

Google app engine 是否可以将实体实例放入memcache服务?

Google app engine 是否可以将实体实例放入memcache服务?,google-app-engine,Google App Engine,我正在使用AppEngine的低级java数据存储api。我想将获取的实体实例存储到memcache中,但不确定是否存在与此相关的任何问题。例如: DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); Entity entity = datastore.get(...); MemcacheService syncCache = MemcacheServiceFactory.getMemcacheS

我正在使用AppEngine的低级java数据存储api。我想将获取的实体实例存储到memcache中,但不确定是否存在与此相关的任何问题。例如:

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Entity entity = datastore.get(...);

MemcacheService syncCache = MemcacheServiceFactory.getMemcacheService();
syncCache.put("abc", entity);
现在,过了一段时间,我将实体从memcache中拉出,修改一个属性,然后将其放回数据存储:

entityLaterOn = syncCache.get("abc");
entityLaterOn.setProperty("foo", "bar");
datastore.put(entityLaterOn);
这是合法用法吗?是否有任何与我最初放入memcache的实体相关的状态会导致尝试上述操作时出现问题

我看到的memcache的大多数示例都涉及首先将实体实例转换为中间模型类,而不是直接缓存实体实例本身


谢谢

实体实现了Serializable,所以将其存储在Memcache中应该不会有问题。唯一的限制是对象的总大小应小于app。1MB,但它适用于所有对象

但是,请记住,可以随时从Memcache中逐出对象。因此,当调用
entityLaterOn=syncCache.get(“abc”)时,您必须准备好让
entityLaterOn
为null