我使用了 GWT 2.4 和 GAE 1.7.4。在我的数据存储中,我使用 blob 作为商店图像。**我已经将所有数据放入 **memcache 并且在每次刷新我的主页后读取配额增加 1%。
我的代码如下
public List<CastDTO> getAll() {
List<CastDTO> dtoList = new ArrayList<CastDTO>();
//Use Memcache more efficiently, Increase caching of frequently accessed shared data
final MemcacheService syncCache = MemcacheServiceFactory.getMemcacheService();
syncCache.setErrorHandler(ErrorHandlers.getConsistentLogAndContinue(Level.INFO));
List<Cast> cacheCastsList = (List<Cast>) syncCache.get(StaticData.CAST_LIST);
if(cacheCastsList == null){
cacheCastsList = castDAO.findAll();
for (Cast cast : cacheCastsList) {
dtoList.add(CastConverter.convert(cast));
syncCache.put(cast.getCastName(), cast.getCastImage());
}
syncCache.put(StaticData.CAST_LIST, cacheCastsList);
}else{
for (Cast cast : cacheCastsList) {
dtoList.add(CastConverter.convert(cast));
}
}
return dtoList;
}
最佳答案
不,memcache 默认不使用读取 cota。 但是,如果您使用内存缓存中的数据来识别数据存储中的其他数据,那么您将使用 cota。
如果在执行“刷新缓存”并第二次重新加载您的主页后未命中计数增加,您能在内存缓存查看器中看到吗?
如果第二次主页加载后您的未命中计数增加,则您的代码中可能有错误的实现。
关于google-app-engine - 内存缓存是否使用了谷歌应用引擎的读取配额?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16767913/