zoukankan      html  css  js  c++  java
  • Mybatis笔记(六):一级缓存与二级缓存

    时间:2021/10/20

    一.一级缓存

    有关一级缓存的内容是比较简单的,需要记住的是:一级缓存默认是开启的,只在一次SqlSession中有效,当该SqlSession被close时,该缓存也会被清空,同时,增删改操作也会刷新缓存。

    二.二级缓存

    1.开启二级缓存的步骤

    1)在mybatis-config.xml配置文件的settings中全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存

    虽然该变量的默认值为true,但是最好在配置文件中显示开启。

    2)在映射器配置文件中开始缓存(如在UserMapper.xml中)

    默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。 要启用全局的二级缓存,只需要在你的 SQL 映射文件中添加一行:

    1 <cache/>

    还可以通过一下属性进行更详细的配置:

    1 <cache
    2 eviction="FIFO"
    3 flushInterval="60000"
    4 size="512"
    5 readOnly="true"/>

    上面表示使用先进先出的顺序移除二级缓存中的对象,每隔60000秒刷新一次缓存,缓存中最多可以存储512个对象,并且只读。

    可用的清除策略有:

    LRU – 最近最少使用:移除最长时间不被使用的对象。
    FIFO – 先进先出:按对象进入缓存的顺序来移除它们。
    SOFT – 软引用:基于垃圾回收器状态和软引用规则移除对象。
    WEAK – 弱引用:更积极地基于垃圾收集器状态和弱引用规则移除对象。

    2.二级缓存的相关知识

    1)二级缓存也叫全局缓存,一级缓存的作用域太低了,所以诞生了二级缓存。

    2)如果当前会话关闭了,这个会话对应的一级缓存就没了;开启二级缓存后,会话关闭了,一级缓存中的数据被保存到二级缓存中。

    3)新的会话查询信息,就可以从二级缓存中获取内容。

    4)不同的mapper查处的数据会放在自己的缓存块中(也就是二级缓存对应的是mapper)。

    5)查询时先看二级缓存中有没有,再看一级缓存中有没有,如果都没有才会去查数据库。

    努力,向上,自律
  • 相关阅读:
    Tkinter之Label部件
    Tkinter编码风格
    GUI之tkinter视窗设计模块
    绘制函数图像
    backbone学习总结(一)
    实习两个月,写在辞职的今天
    Spark SQL 编程初级实践2- 编程实现利用 DataFrame 读写 MySQL 的数据
    Spark SQL 编程初级实践1-Spark SQL 基本操作
    spark创建DataFrame的几种方式
    python-with open() as file相关参数以及常用打开方式
  • 原文地址:https://www.cnblogs.com/machi12/p/15430948.html
Copyright © 2011-2022 走看看