zoukankan      html  css  js  c++  java
  • MyBatis 一级缓存和二级缓存及ehcache整合

    一级缓存

    什么是缓存??

      缓存是存储在内存(cache)中的数据,一般情况都存在内存,在内存数据存储满了,会存储到硬盘上(disk),或是在我们进行一些操作和配置也可以把缓存存储到磁盘中。

    缓存的作用是什么??

      缓存的作用可以减轻数据库的压力,减少用户对数据库的访问,可以说用户对数据库进行的重复操作在缓存中就可以实现操作,提高用户体验。

    下面这张图是缓存的理解图

    曾删改会对缓存造成影响。

    写个测试,测试一下缓存是否存在:   答案是肯定的

     

     现在测试一下进行曾删改数据,是否会对缓存造成影响?

     

    二级缓存

     二级缓存和一级缓存的区别,  一级缓存是存储在SqlSession作用域中生命周期是整个会话是进程级别的,二级缓存是可以跨进程的,实现数据共享。作用域是Mapper。

    缓存的底层其实是个Map集合,key用于存储SQLId和sql,value存储的是sql的引用。

     

     

    二级缓存默认是开启的,在大配置中,但是开启二级缓存要有三个要素。

    二级缓存的开启方式:  1.在大配置中的setting设置二级缓存  2.在小配置中写cache自闭和标签  3.实体类继承Serializable

     

    二级缓存的作用比一级缓存大,二级缓存并不是在一个会话中起作用,将一个会话结束,开启另一个会话二级缓存是否会起作用 

     

     

    ehcache缓存的配置

    为什么要配置ehcache?

      因为ehcache是专注缓存这块的,比mybatis自身的要快捷方便很多,因为mybatis注重的是框架。

    1.在resources下可以上网查一下这个文件

    2.在小配置中增加一条type写的是你ehcache的全路径

    3.在项目的pom.xml引入ehcahce的jar包

     

     

  • 相关阅读:
    POJ 1795 DNA Laboratory
    CodeForces 303B Rectangle Puzzle II
    HDU 2197 本源串
    HDU 5965 扫雷
    POJ 3099 Go Go Gorelians
    CodeForces 762D Maximum path
    CodeForces 731C Socks
    HDU 1231 最大连续子序列
    HDU 5650 so easy
    大话接口隐私与安全 转载
  • 原文地址:https://www.cnblogs.com/java-263/p/9955965.html
Copyright © 2011-2022 走看看