mybatis开发3

查询缓存

缓存:

Mybatis 默认有查询缓存,提供 一级缓存和二级缓存

  减轻数据库压力,提高系统性能

 

 

 

二级缓存

 

 

 

禁用二级缓存:用于每次都需要查询最新数据的场景

 

 

 

 

 

Ehcache

 

分布式缓存框架

 

 

 

 

 

 

Mybaits自身无法实现分布式缓存,引用其他缓存框架来实现

 

 

  1. 导入jar包
  2. 配置xml文件
  3.  

 

属性说明:ehcache

l diskStore:指定数据在磁盘中的存储位置。

l defaultCache:当借助CacheManager.add("demoCache")创建Cache时,EhCache便会采用<defalutCache/>指定的的管理策略

以下属性是必须的:

l maxElementsInMemory - 在内存中缓存的element的最大数目 

l maxElementsOnDisk - 在磁盘上缓存的element的最大数目,若是0表示无穷大

l eternal - 设定缓存的elements是否永远不过期。如果为true,则缓存的数据始终有效,如果为false那么还要根据timeToIdleSecondstimeToLiveSeconds判断

l overflowToDisk - 设定当内存缓存溢出的时候是否将过期的element缓存到磁盘上

以下属性是可选的:

l timeToIdleSeconds - 当缓存在EhCache中的数据前后两次访问的时间超过timeToIdleSeconds的属性取值时,这些数据便会删除,默认值是0,也就是可闲置时间无穷大

l timeToLiveSeconds - 缓存element的有效生命期,默认是0.,也就是element存活时间无穷大

diskSpoolBufferSizeMB 这个参数设置DiskStore(磁盘缓存)的缓存区大小.默认是30MB.每个Cache都应该有自己的一个缓冲区.

l diskPersistent - VM重启的时候是否启用磁盘保存EhCache中的数据,默认是false

l diskExpiryThreadIntervalSeconds - 磁盘缓存的清理线程运行间隔,默认是120秒。每隔120s,相应的线程会进行一次EhCache中数据的清理工作

l memoryStoreEvictionPolicy - 当内存缓存达到最大,有新的element加入的时候, 移除缓存中element的策略。默认是LRU(最近最少使用),可选的有LFU(最不常使用)和FIFO(先进先出)

 

 

 

 

 

二级缓存:

对实时查询结果要求不高的情况,可以设置刷新间隔。

 

 

局限性:

对细粒度缓存数据支持不友好。

 

 

逆向工程

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值