发表于: 2018-03-03 23:59:22

1 752


今天完成的事情:

首先对在代码中编写缓存的逻辑。

尝试着将登陆的模块单独提取出来,但是始终没想明白怎么做这逻辑。

明天计划的事情:准备小课堂。
遇到的问题:
1.如何在缓存一次性插入大量数据
但是使用List的话,就在读取出来的时候报错,压根做不到,但是那样,读取出来就没有意义。
想了好久,只能将数据一条一条的插入到List里,然后在塞到list里面去。
System.out.println("-----kaishi----");
List<Excellent> excellents = new ArrayList<>();
Excellent excellent = null;
for (int i = 1; i < 5; i++) {
System.out.println("-----kkkkkkkk----");
excellent = (Excellent) xMemcachedUtil.getCache("excellent+" + i);
if (excellent != null) {
System.out.println("-----666666----");
excellents.add(excellent);
System.out.println(excellent.getName() + "来自缓存");
}
}
if (excellent != null) {
return excellents;
} else {
for (int i = 1; i < 5; i++) {
excellent = excellentDAO.selectById(i);
if (excellent.getName() != null) {
excellents.add(excellent);
System.out.println(excellent.getName() + "来自数据库");
xMemcachedUtil.addCache("excellent" + i, 60 * 60, excellent);
}
}
}
但是这个逻辑写出来,得到的结果却总是来自数据库。
而且我试着从插入之后立刻读取,结果发现压根读取不到数据。感觉数据就没出现在缓存里。
仔细分析之后,感觉是不是Key值的原因。
重新编写代码之后,结果如下:
在代码中,使用String name="excellent"+i;
 然后将name作为KEY值写入缓存,问题解决:
收获:

1.仔细分析代码,看计算机是怎么想的,而不是按自己怎么想。



返回列表 返回列表
评论

    分享到