Mybatis 二级缓存
来源:互联网 发布:mysql全文检索 编辑:程序博客网 时间:2024/05/22 15:11
一、mybatis 二级缓存
1、mybatis 的一级缓存是SqlSession
2、mybatis 的二级缓存是基于同一命名空间(namespace) mapper
3、mybatis 默认二级缓存未开启、内置是支持二级缓存的。但是由于本身是数据库管理组件、所以缓存并不好用、所以还是要用第三方的缓存机制。典型的:ehcache 。
二、二级缓存的常见算法
- LRU(Least Recently Used):这种算法是在每个对象中维护一个访问的时间变量,每次访问后,时间都会更新,当新的对象需要存放到缓存时,替换那个按时间排序最后的对象。
- LFU(Least Frequently Used):这种算法是每个对象记录了对象访问的次数(即命中率),当新的对象需要存放到缓存时,替换那个访问次数最少的对象。
FIFO(First In First Out):这种算法是将缓存中的对象存放成一个数组,当新的对象需要存放到内存中是,替换最先存放到缓存的对象。
三、mybatis 中开启二级缓存1、使用mybatis自带的二级缓存
1.)对象要实现 Serializable 接口
2.)在mapper.xml映射文件中添加<!-- 开启缓存 --><cache/>
3.)在mybatis-config.xml中添加
<!-- 开启二级缓存 -->
2、使用第三方缓存(集成ehcache)
1. ) 导入jar包
- mybatis-ehcache-1.1.0.jar
- ehcache-2.10.3.jar
- slf4j-api-1.7.7.jar
2.)生成ehcache.xml配置文件
<?xml version="1.0" encoding="UTF-8"?><ehcache> <!-- 配置文件缓存溢出后存储位置 --> <diskStore path="c:/ehcache"></diskStore> <!-- maxElementsInMemory : 缓存的最多个数 eternal : 对象永久有效、一旦设置为true、那么timeout就无效 timeToIdleSeconds : 设置对象失效前空闲的最大时间、当设置eternal="false"、才能起效 timeToliveSeconds : 设置对象失效前可以存活多少秒、设置0、表示永久有效 overflowToDisk : 溢出时写入硬盘 --> <defaultCache maxElementsInMemory="100000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true"/></ehcache>
3.)在mybatis-config.xml中开启二级缓存
4.)在mapper文件中指定cache类型为ehcache
<!-- 开启二级缓存 --> <cache type="org.mybatis.caches.ehcache.EhcacheCache" ></cache>
阅读全文
0 0
- mybatis 二级缓存
- Mybatis二级缓存
- mybatis二级缓存
- Mybatis 二级缓存
- [MyBatis]二级缓存
- mybatis二级缓存
- MyBatis-二级缓存
- mybatis二级缓存
- mybatis 二级缓存
- mybatis二级缓存
- Mybatis二级缓存
- MyBatis二级缓存
- MyBatis 二级缓存
- MyBatis二级缓存
- mybatis 二级缓存
- Mybatis 二级缓存
- mybatis 高速缓存和二级缓存
- Mybatis二级缓存初探
- 什么是响应式网页设计?
- 权限管理命令chown
- 机器学习必备手册
- SpringMVC学习笔记
- javascript 实现页面间传值(2)
- Mybatis 二级缓存
- NullSafe详细解读
- rlwrap 安装应用
- 中国首届原型设计大赛在成都举办
- MySQL-02-windows下查看frm,myi,myd
- log4j2应用详解
- 使用Toad调用expdp数据泵备份数据步骤及注意事项
- linux 学习系列-Linux 用户和用户组管理
- 权限管理命令chgrp