发表于: 2017-06-05 11:59:15
1 1268
今天完成的事情:
1、完成通过将数据存入redis中。
2、模拟缓存穿透的情况。
模拟缓存穿透,我的想法是这样,在三个service实现类中都定义了一个静态int变量记录访问次数。当在达到一定次数时,删掉缓存。使它到数据库中查询。
private static int count;
@Override
public List<JnshuFeature> selectAll() {
List<JnshuFeature> jnshuFeatures = null;
// 模拟缓存穿透的场景,当count值为20,21,22,23,24的倍数时,删掉缓存。
if (count % 20 == 0 || count % 21 == 0 || count % 22 == 0 || count % 23 == 0 || count % 24 == 0) {
System.out.println("删除缓存");
RedisUtil.setList("jnshuFeatures", null);
}
//使用redis作为缓存
jnshuFeatures = (List<JnshuFeature>) RedisUtil.getList("jnshuFeatures");
if (null != jnshuFeatures && jnshuFeatures.size() > 0) {
System.out.println("features 数据从redis中取出");
System.out.println("features 访问数:" + count++);
return jnshuFeatures;
}
jnshuFeatures = sqlSession.selectList("com.jn.mapper.JnshuFeatureMapper.selectAll");
RedisUtil.setList("jnshuFeatures", jnshuFeatures);
System.out.println("访问计数:" + count++);
System.out.println("features 数据从数据库中取出,已缓存入 redis");
return jnshuFeatures;
}
就这么写好之后就开始测了,定了2秒内启动20个线程。循环20次。
不行了,基本上是看不懂 jmeter 报告中的各种参数。
开始学习一波jmeter。
3、开通容联短信,查看API。开通华为云。我已经有一个腾讯云了。所以这样任务七中应该具备条件写一个迁移数据的脚本了。
遇到的问题:
1、Redis 存储支持的类型没有object ,虽然有支持list,但是只支持List<String>。
解决办法:有两种方法可以实现存储对象和泛型,
①用序列化和反序列化
②json
参考的网页:
https://www.oschina.net/question/228694_2151535
http://blog.csdn.net/tuposky/article/details/45339863
明天的计划:
开始任务7。
收获:
好像是对怎么用jmeter有了一定的了解。
这个任务6做的过程中心里一直空荡荡的。
评论