zoukankan      html  css  js  c++  java
  • 搭建二级缓存

    1.SqlSession对象是一级缓存 默认是开启状态

    2.SqlSessionFactory对象为二级缓存,可以通过配置开启(下列配置默认使用mybatis的缓存):

    a)在主配置文件中启用二级缓存
    <!-- 开启二级缓存 -->
    <setting name="cacheEnabled" value="true"/>
    b)在要使用二级缓存的mapper文件中,使用cache标签

    <cache 属性.../>:
    可用的收回策略
    LRU – 最近最少使用的:移除最长时间不被使用的对象;
    FIFO – 先进先出:按对象进入缓存的顺序来移除它;
    SOFT – 软引用:移除基于垃圾回收器状态和软引用规则的对象;
    WEAK – 弱引用:更积极地移除基于垃圾收集器状态和弱引用规则的对象;
    默认的是 LRU
    例如:
    <cache
    eviction="FIFO"
    flushInterval="60000"
    size="512"
    readOnly="true"/>
    这个配置创建了一个 FIFO 缓存,并每隔 60 秒刷新,存取512 个结果对象或列表的引用,而且返回的对象为只读,因此在不同线程中的调用者之间修改它们会导致冲突。

    useCache:true使用缓存,false关闭缓存,可以配置在sql语句级别上
    update delte insert更新数据后默认会自动同步缓存,采用flushCache="false"可做到不及时更新缓存数据,这时数据就是历史数据(脏读取)

    3.使用第三方缓存方案(EhCache):
    a)先导入包 mybatis-ehcache-1.0.2.jar、ehcache-1.6.2.jar
    b)在主配置文件中启用二级缓存
    <!-- 开启二级缓存 -->
    <setting name="cacheEnabled" value="true"/>
    (c)让cache标签中type指向第三方缓存 type="org.mybatis.caches.ehcache.EhcacheCache"
    d)配置缓存策略文件 ehcache.xml

    <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="../config/ehcache.xsd"
    updateCheck="false">

    <diskStore path="java.io.tmpdir/ehcache" />

    <!-- DefaultCache setting. -->
    <defaultCache
    maxElementsInMemory="10000"
    eternal="false"
    timeToIdleSeconds="300"
    timeToLiveSeconds="600"
    overflowToDisk="true"
    maxElementsOnDisk="100000"
    memoryStoreEvictionPolicy="LFU"/>

    </ehcache>


  • 相关阅读:
    机电传动控制第五周学习笔记
    机电传动控制第四周学习笔记和仿真作业
    第三周学习笔记
    《机电传动控制》第二周作业
    学习笔记第一周
    第十周作业
    第八周仿真作业
    第六周学习笔记
    第五周作业
    机电传动控制第四周作业
  • 原文地址:https://www.cnblogs.com/joyous-day/p/6132747.html
Copyright © 2011-2022 走看看