【发布时间】:2015-03-13 00:38:16
【问题描述】:
我正在使用 memcache 仅存储整数值以及使用字符串值创建的键。我没有定义过期值来让这些值尽可能地保留,就像谷歌文档所说的那样。但问题是最旧的项目最多在那里停留 4 小时。通常只有不到2小时。突然间一切都归零。代码如下:
Key mKey=null;
MemcacheService memcache = MemcacheServiceFactory.getMemcacheService();
try {
mKey=KeyFactory.createKey("device",deviceNo);
if (memcache.get(mKey)==null) {
Query query = mgr.createQuery("select d.insDate from TrialCheck d where d.DeviceId = :deviceNo");
resultList.addAll(query.setParameter("deviceNo", deviceNo).getResultList());
if (resultList.size()<1){
resultList.add(0);
} else {
for (Integer d:resultList) {
memcache.put(mKey, d);
}
}
} else {
Integer installDate = (Integer) memcache.get(mKey);
resultList.add(installDate);
}
我读过一些帖子说它是关于实例下降的,但我看不到实例和 memcache 重置之间的任何关联。共享内存缓存的这种行为是否正常或代码有问题?
【问题讨论】:
标签: java google-app-engine memcached