谷歌应用程序引擎从内存缓存中检索空值

时间:2012-11-10 12:14:45

标签: google-app-engine

我想在谷歌应用引擎中使用内存缓存,我实现如下:

public static UserDictionary userDictionary = null;
private MemcacheService syncCache;
public static final Logger log = Logger.getLogger(UserDictionary.class.getName());

@SuppressWarnings(value = { "unchecked" })
private UserDictionary() {      
    syncCache = MemcacheServiceFactory.getMemcacheService();
    syncCache.setErrorHandler(ErrorHandlers.getConsistentLogAndContinue(Level.INFO));
}

public static UserDictionary getInstance() {
    if(userDictionary == null) {                
                userDictionary = new UserDictionary();
    }
    return userDictionary;
}


public Entity getFromCache(String userId) {     
        return (Entity) syncCache.get(userId);      
}

public void putInCache(String userId, Entity userEntity) {
    syncCache.put(userId, userEntity,Expiration.byDeltaSeconds(999999999), MemcacheService.SetPolicy.SET_ALWAYS);
}

public boolean isCacheEmpty() {
    long itemCount = syncCache.getStatistics().getItemCount();
    return itemCount == 0L;     
}

问题是,在我将一个Object放入缓存然后我尝试获取它之后,get方法返回null。我查看了我的谷歌应用引擎,它显示这是memcache中的一个对象。键是一个java字符串。 key和value都实现了Serializable。

命中数:0 小姐数:31522 命中率:0% 项目数:15项

0 个答案:

没有答案