发表于: 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做的过程中心里一直空荡荡的。


返回列表 返回列表
评论

    分享到