发表于: 2017-07-12 10:55:20
2 1222
今天完成的:
Task6
收获:
1.idea常用快捷键
ctrl+/ 快速单行注释
ctrl+shift+/ 快速多行注释
alt+enter 自动补全
alt+insert 插入getter/setter/构造器等
ctrl+p 在调用时显示方法参数信息
ctrl+ 鼠标左键 链接代码
ctrl+alt+T 包围语句块
ctrl+alt+o 去除无用导入
ctrl+alt+l 格式化代码
2.模拟缓存击穿
我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回。这个时候如果有人一直查询一个不可能存在的数据,就会造成每一次请求都查询DB,这样缓存就失去了意义,在流量大时,可能DB就挂掉了。
public List<Developer> queryDeveloper() {
String json = cacheUtil.get("DeveloperList");
if (json != null) {
logger.debug("从缓存中读取开发者列表---------------------json为:"+json);
List<Developer> developers = new Gson().fromJson(cacheUtil.get("DeveloperList"),new TypeToken<List<Developer
>>(){}.getType());
//模拟缓存击穿
developers.remove(1);if(developers.size()<6){
logger.debug("-----------------击穿缓存:"+developers.toString());
developers = DeveloperDAO.queryDeveloper("%");
return developers;
}
return developers;
} else {
developers = DeveloperDAO.queryDeveloper("%");
cacheUtil.put("DeveloperList", developers);
logger.debug("--------------将开发者列表添加到redis缓存中");
return developers;
}
}
遇到的问题:
1.惨痛的教训,又买了一台阿里云服务器,配安全组之后仍然访问不到端口,在tomcat没有正常启动时,外网telnet 8080是访问不到的。而我以为是服务器的问题,调了半天。
明天的计划:
Task7
评论