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包

     

     

  • 相关阅读:
    php 数据类型
    Django REST framework基础:视图和路由
    Django REST framework基础:序列化
    android 适配器 ArrayAdapter,SimpleAdapter的学习
    关于系统模块设计的一点疑问?
    看了看 #ifndef 和#pragma once 的区别
    ace.js 中文手册
    .net core 3.1发布时视图Views文件夹不被打打包成.dll文件解决办法
    Asp.net core应用在 Kubernetes上内存使用率过高问题分析
    .Net Core内存回收模式及性能测试对比
  • 原文地址:https://www.cnblogs.com/java-263/p/9955965.html
Copyright © 2011-2022 走看看