二级缓存问题

二级缓存问题

老师好:请问开启了二级缓存后  commit提交时对该namespace缓存强制清空还会起作用吗?

为什么我这边演示commit打开/关闭后,缓存使用频率是一样的?


commit提交打开

[main] 15:37:42.399 DEBUG goods - Cache Hit Ratio [goods]: 0.3333333333333333

[main] 15:37:42.399 DEBUG goods - Cache Hit Ratio [goods]: 0.5

[main] 15:37:42.400 DEBUG goods - Cache Hit Ratio [goods]: 0.6

打印哈希值6750210:::6750210:::6750210

commit提交关闭

[main] 15:40:35.271 DEBUG goods - Cache Hit Ratio [goods]: 0.3333333333333333

[main] 15:40:35.271 DEBUG goods - Cache Hit Ratio [goods]: 0.5

[main] 15:40:35.271 DEBUG goods - Cache Hit Ratio [goods]: 0.6

打印哈希值6750210:::6750210:::6750210


@Test
public void testLV1Cache(){
    SqlSession sqlSession=null;
    try {
        sqlSession=MybatilsUtils.openSession();
        Goods goods=sqlSession.selectOne("goods.selectById",900);
        Goods goods1=sqlSession.selectOne("goods.selectById",900);
        //Goods goods3=sqlSession.selectOne("goods.selectById",900);
        //Goods goods4=sqlSession.selectOne("goods.selectById",900);
        System.out.println("打印哈希值"+goods.hashCode()+":::"+goods1.hashCode()); //":::"+goods3.hashCode()+":::"+goods4.hashCode());
    } catch (Exception e) {
        e.printStackTrace();
    }finally {
        MybatilsUtils.closeSession(sqlSession);
    }
    try {
        sqlSession=MybatilsUtils.openSession();
        Goods goods3=sqlSession.selectOne("goods.selectById",900);
       // sqlSession.commit();//commit提交时对该namespace缓存强制清空
        Goods goods4=sqlSession.selectOne("goods.selectById",900);
        //sqlSession.commit();
        Goods goods5=sqlSession.selectOne("goods.selectById",900);
        System.out.println("打印哈希值"+goods3.hashCode()+":::"+goods4.hashCode()+":::"+goods5.hashCode());
    } catch (Exception e) {
        e.printStackTrace();
    }finally {
        MybatilsUtils.closeSession(sqlSession);
    }

}



正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好

  1. 开启二级缓存,执行 DML 操作(insert、update、delete),并commit提交了,会对该namespace缓存强制清空。

  2. 执行select时不会清空二级缓存。

注:为了同学的问题可以清晰定位,可以在提问时上传代码运行截图,并将疑问部分圈出哦。 

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师