关于EHCACHE的问题,请看详细

沉沦s 发布于 2016/07/01 19:16
阅读 290
收藏 0

公司一个web项目,有一个页面无规律的获取不到数据,但是重启下tomcat就好了,而且在本地连接外网数据库的话本地页面是有数据的,初步判定是因为这个页面列表用到了ehcache

我把数据字典整张表缓存起来放到的ehcache中,下面是我的缓存配置

<cache name="DATAPARAMETER_CACHE"
maxElementsInMemory="100"
maxElementsOnDisk="100"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="15000"
timeToLiveSeconds="18000"
memoryStoreEvictionPolicy="LFU"/>

数据字典大概有400条数据。

有人可能会说把maxElementsInMemory和maxElementsOnDisk字段值调大一点不就Ok了吗?但是我在本地测试了一下,我把这个两个值都改成了非常小的值。缓存根本存不进去(原因未知,还请大神求解)

下面是我获取存入缓存的方法:

public HashMap<String, DataParameter> queryDataParameter(){
HashMap<String, DataParameter> map = (HashMap<String, DataParameter>) EHCacheUtil.get(EHCacheName.DATAPARAMETER_CACHE, "query");
if (ObjectUtils.isNullObj(map)) {
List<DataParameter>  dataParametersList = dataParameterMapper.selectOneDataParameter();
if (!ObjectUtils.isNullObj(dataParametersList)) {
map = new HashMap<String, DataParameter>();
if (!ObjectUtils.isNullObj(dataParametersList)) {
for (DataParameter dp:dataParametersList) {
map.put(dp.getCategoryCode()+dp.getParamValue(), dp);
}
}
EHCacheUtil.put(EHCacheName.DATAPARAMETER_CACHE, "query", map);
}
}
return map;
}
 还希望有大神不吝赐教! 谢谢


加载中
0
沉沦s
沉沦s
好郁闷,为什么没人回答啊
0
沉沦s
沉沦s
希望有懂这一方面的大神不吝赐教
0
魔力猫
魔力猫
是否某些数据长期没有命中就彻底被从内存中废弃了?
沉沦s
沉沦s
有可能但是不确定
0
周广
周广
上redis吧。 可以方便管理缓存数据
lxx豆豆
lxx豆豆
没必要吧。
0
超级大富
超级大富
看你的代码的,如果缓存没有,是不是从数据库拿的?你可以断点调试看下从数据库加载到的是否有数据
超级大富
超级大富
回复 @沉沦s : 缓存的对象有失效时间的
沉沦s
沉沦s
是不是有这种情况,我缓存了整张表,里面的某些key会消失,但是这个缓存对象还是在的
0
554330833a
554330833a
redis和ecache哪个好,有什么区别?
沉沦s
沉沦s
个人觉得redis更好,但是项目里面原先的是ehcache,就没去做redis
返回顶部
顶部