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)查询时先看二级缓存中有没有,再看一级缓存中有没有,如果都没有才会去查数据库。

    努力,向上,自律
  • 相关阅读:
    u-boot 2011.09 调用kernel 的流程
    Delphi repeat Until 运用
    clientdataset的使用
    类型TTreeView.items.add 与 TTreeView.items.addchild有何区别?(10分)
    delphi中nil、null、UnAssigned区别
    操作TreeView(咏南工作室)
    delphi7 treeview + 数据库 实现动态节点维护
    Delphi Try Except 实例
    Delphi 中自定义异常及异常处理的一般方法
    Delphi中的异常处理(10种异常来源、处理、精确处理)
  • 原文地址:https://www.cnblogs.com/machi12/p/15430948.html
Copyright © 2011-2022 走看看