- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2011 iBatis高速缓存应用 什么是缓存? 缓存其实就是将常用的数据暂存于内存缓存区中的一种技术。 一个WEB应用程序中,缓存可以应用在: 表现层 服务层 数据访问层 iBATIS的高速缓存只关注于数据访问层。 iBATIS的高速缓存 一个简单的iBATIS高速缓存示例 高速缓存的配置是通过cacheMode标签来定义的,标签属性如下: 高速缓存模型cacheMode id 该值用于指定一个唯一的ID type 此属性用于指定高速缓存模型所配置的高速缓存的类型。其有效值包括MEMORY,FIFO,LRU,OSCACHE readOnly 将该值设置为true,就表示高速缓存将仅仅被用作只读高速缓存。从只读高速缓存中读出的对象值是不允许更改的。 serialize 该属性用于指定在读取高速缓存内容时是否要进行“深复制”。 “深复制”是指被返回的是一个深度复制的副本,只具有相同的值,但不是同一个实例。 iBATIS提供了4个高速缓存实现,这4个就是type属性的有效值: 高速缓存模型类型 type属性 MEMORY 这个模型简单地将高速缓存数据保存在内存中,直至垃圾收集器将它移除 FIFO 这个模型中,高速缓存的数据量是固定的,使用“先进先出”算法来移除高速缓存中的数据。 LRU 这个模型中,高速缓存的数据量是固定的,使用“最近最少使用”算法来移除高速缓存中的数据。 OSCACHE 这个模型使用OpenSymphony公会的产品---OSCache2.0 readOnly和serialize两个属性有一些重叠,但需要紧密协同才能正常工作: 组合使用readOnly和serialize readOnly serialize 结果 原因 true false 好 可以最快速地检索出已高速缓存对象。返回已高速缓存对象的一个共享实例。 false true 好 能快速检索出已速度缓存对象,返回已高速缓存对象的一个深副本 false false 警告 这种组合,返回同一个共享实例,又不是只读的, 会造成线程安全问题。 true true 坏 这种组合同readOnly=false而serialize=true的组合作用一致,否则它的语义上没有任何意义。 高速缓存的清除,可以使用下面两个标签: 高速缓存的清除 标签名称 用途 flushOnExecute 定义查询已映射的语句,其执行将引起相关高速缓存的清除。 statement属性指定一个映射语句。 flushInterval 定义一个时间间隔,高速缓存将以此间隔定期清除。 hours: 小时 minutes: 分钟 seconds: 秒 milliseconds: 毫秒 MEMORY是内存缓存,是一种基于引用的高速缓存。 提供了三种引用类型: MEMORY模型 WEAK WEAK引用类型将很快地废弃已高速缓存的对象。这种引用类型在垃圾收集器的第一遍收集中就会被移除。 SOFT SOFT引用类型在满足内在约束的前提下,将尽可能地保留已高速缓存的对象,垃圾收集器始终不会收集对象,除非确定需要更多的内存,SOFT将确保不会超过内存限制。 STRONG STRONG引用类型不管内存约束,其中已高速缓存对象永远不会被废弃,除非到达了指定的清除时间间隔。 FIFO是采用先进先出的管理策略,当高速缓存超过大小限制时,才会废弃缓存中最老的对象。 FIFO模型 LRU是采用最近最少使用的管理策略,该高速缓存的内部机制会在后台记录哪些对象最近最少被访问,一旦超过高速缓存大小限制就会废弃他们。 LRU模型 OSCACHE高速缓存模型采用OpenSymphony公会的产品---OSCache2.0。OSCache是一个非常健壮的高速缓存框架,它可以提供很多同iBATIS在其缓存模型中所提供的一致的策略。要使用OSCache就需要引用OSCache JAR和oscache.properties文件。 OSCACHE模型 高速缓存模型实际上是框架的可插入组件,要定义自己的高速缓存,只需要记住两点: iBATIS所提供的4种类型的高速缓存模型实际上都是com.ibatis.sqlmap.engine.cache.CacheController接口的具体实现。 它们的名称实际上只是映射到这些实现的全限定名的别名。 自己的高速缓存模型 Thank you !
有哪些信誉好的足球投注网站
文档评论(0)