开发者社区> 问答> 正文

关于EHCACHE的问题,请看详细? 400 报错

关于EHCACHE的问题,请看详细? 400 报错

公司一个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;
}
 还希望有大神不吝赐教! 谢谢


展开
收起
爱吃鱼的程序员 2020-05-30 21:15:25 476 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

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

    2020-05-30 21:15:26
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载