Ehcache学习笔记——初识Ehcache

1. Ehcache 的主要特性和集群方案

EHCache EHCache 是一个纯 java 的在进程中的缓存,是 Hibernate 中默认的 CacheProvider,最小的依赖性, 全面的文档和测试,最新版本为 2.0.1。 缓存应用在多个领域并发挥作用,ehcache 可应用于数据库访问缓存,安全认证缓存,web 缓存,soap 和 RESTFul 服务缓存,应用程序持久对象缓存以及分布式缓存。

(1)EhCache 的主要特性有:

a) 快速; b) 简单; c)多种缓存策略;

d)缓存数据有两级:内存和磁盘,因此无需担心容量问题;

e)缓存数据会在虚拟机重启的过程中写入磁盘;

f)可以通过 RMI、可插入 API 等方式进行分布式缓存;

g) 具有缓存和缓存管理器的侦听接口;

h) 支持多缓存管理器实例,以及一个实例的多个缓存区域;

i) 提供 Hibernate 的缓存实现;

(2)EhCache 从 1.7 版本后,支持五种集群方案,分别是: a) Terracotta  b)RMI  c)JMS  d)JGroups  e)EhCache Server

2. Ehcache 的层次模型

Ehcache 的类层次模型主要为三层,最上层的是 CacheManager,他是操作 Ehcache 的入 口。我们可以通过 CacheManager.getInstance()获得一个单子的 CacheManger,或者通 过 CacheManger 的构造函数创建 一个新的 CacheManger。 每个 CacheManager 都管理着多个 Cache。而每个 Cache 都以一种类 Hash 的方式,关联着 多个 Element。 Element(键值对)则是我们用于存放要缓存内容的地方。

3. Hibernate 的二级缓存策略

Hibernate 的二级缓存策略的一般过程如下 :

1)条件查询的时候,总是发出一条 select * from table_name where .... (选择所有字段)这样的 SQL 语句查询数据库,一次获得所有的数据对象。

2) 把获得的所有数据对象根据 ID 放入到第二级缓存中。

3)当 Hibernate 根据 ID 访问数据对象的时候,首先从 Session 一级缓存中查;查不到, 如果配置了二级缓存,那么从二级缓存中查;查不到,再查询数据库,把结果按照 ID 放 入到缓存。

4 )删除、更新、增加数据的时候,同时更新缓存。 Hibernate 的二级缓存策略,是针对于 ID 查询的缓存策略,对于条件查询则毫无作用。 为此,Hi bernate 提供了针对条件查询的 Query Cache。

4. Ehcache 的三种清空策略

(1) FIFO,first in first out,这个是大家最熟的,先进先出。

(2) LFU, Less Frequently Used,就是上面例子中使用的策略,直白一点就是讲一直以来最少被使用 的。缓存的元素有一个hit 属性,hit 值最小的将会被清出缓存。

(3) LRU,Least Recently Used,最近最少使用的,缓存的元素有一个时间戳,当缓存容量满了,而又 需要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将 被清出缓存。

时间: 2024-07-30 07:14:37

Ehcache学习笔记——初识Ehcache的相关文章

StyleCop学习笔记——初识StyleCop

一.定义 StyleCop是微软的一个开源的静态代码分析工具,检查c#代码一致性和编码风格. 二.支持的环境. JetBrains R# 5.1.3 ( 5.1.3000.12) JetBrains R# 6.0 (6.0.2202.688) JetBrains R# 6.1 (6.1.37.86) JetBrains R# 6.1.1 (6.1.1000.82) JetBrains R# 7.0.1 (7.0.1098.2760) JetBrains R# 7.1.3 (7.1.3000.22

RTX51 Tiny实时操作系统学习笔记—初识RTX51 Tiny

 一,RTX51 Tiny简单介绍 RTX51 Tiny是一种实时操作系统(RTOS),能够用它来建立多个任务(函数)同一时候运行的应用(从宏观上看是同一时候运行的,但从微观上看,还是独立运行的).嵌入式应用系统常常有这样的需求.RTOS能够提供调度.维护.同步等功能. 实时操作系统能灵活的调度系统资源,像CPU和存储器,而且提供任务间的通信.RTX51 Tiny是一个功能强大的RTOS,且易于使用,它用于8051系列的微控制器.该RTOS最多支持16个任务,基于RTX51 Tiny构建的应用程

capwap学习笔记——初识capwap(四)

2.5.7 CAPWAP传输机制 WTP和AC之间使用标准的UDP客户端/服务器模式来建立通讯. CAPWAP协议支持UDP和UDP-Lite [RFC3828]. ¢ 在IPv4上,CAPWAP控制和数据通道使用UDP.此时CAPWAP报文中的UDP校验和必须设置为0.AC上的CAPWAP控制报文端口为UDP众所周知端口5246,数据报文端口为UDP众所周知端口5247 ,WTP可以随意选择CAPWAP控制和数据端口. ¢ 在IPv6上,CAPWAP控制通道一般使用UDP,而数据通道可以使用U

capwap学习笔记——初识capwap(二)

2.5.1 AC发现机制 WTP使用AC发现机制来得知哪些AC是可用的,决定最佳的AC来建立CAPWAP连接. WTP的发现过程是可选的.如果在WTP上静态配置了AC,那么WTP并不需要完成AC的发现过程. WTP首先发送一个 Discovery Request message给受限的广播地址,或者CAPWAP的多播地址(224.0.1.140),或者是预配置的AC的单播地址.在IPV6网络中,由于广播并不存在,因此使用"All ACs multicast address" (FF0X

capwap学习笔记——初识capwap(一)

2 初识CAPWAP 2.1 CAPWAP简介 说了半天CAPWAP,连全称都还没说,汗-- CAPWAP--Control And Provisioning of Wireless Access Points Protocol Specification.其由两个部分组成:CAPWAP协议和无线BINDING协议. 前者是一个通用的隧道协议,完成AP发现AC等基本协议功能,和具体的无线接入技术无关.后者是提供具体和某个无线接入技术相关的配置管理功能.这么说吧,前者规定了各个阶段需要干什么事,后

capwap学习笔记——初识capwap(五)

3. CAPWAP Binding for IEEE 802.11 ¢ CAPWAP协议本身并不包括任何指定的无线技术.它依靠绑定协议来扩展对特定无线技术的支持. ¢ RFC5416就是用来扩展CAPWAP对IEEE 802.11网络的支持.其中定义了控制消息字段,新的控制消息,消息元素. ¢ 注意,这个协议仅支持IEEE 802.11-2007规范,并不支持IEEE 802.11-2007 standard中定义的ad hoc网络模式(即点到点模式,也就是IBSS),也不适用于four-add

capwap学习笔记——初识capwap(三)

2.5.6 CAPWAP状态机详解 2.5.6.1 Start to Idle 这个状态变迁发生在设备初始化完成. ¢  WTP: 开启CAPWAP状态机. ¢  AC:  开启CAPWAP状态机. 2.5.6.2 Idle to Discovery 这个状态变迁发生是为了支持CAPWAP发现进程. ¢   WTP: WTP进入发现状态是为了优先去传输第一个Discovery Request message.在进入这个状态之前,WTP设置发现DiscoveryInterval timer,将Di

EHCache学习笔记

介绍: EHCache 是一个快速的.轻量级的.易于使用的.进程内的缓存.它支持 read-only 和 read/write 缓存,内存和磁盘缓存.是一个非常轻量级的缓存实现,而且从 1.2 之后就支持了集群. 配置: EHCache的配置非常灵活,可以在声明里配置,也可以在xml.程序中.构造函数中配置.下面在程序中动态的改变Cache的配置,如下: Cache cache = manager.getCache("sampleCache");CacheConfiguration c

STL学习笔记-->初识STL

“这里要用char类型”; “这里要用int类型”; “其实实现这个方法只需要把另一个方法的返回值的类型和传入参数的类型改成float类型就实现了”; “其实这个算法只需要把以前写的那个稍微改动一下就行了”; ……………… 学过面向对象语言的都知道GP这个概念,就是泛型程序设计,说的再明白点就是编写不依赖于具体数据类型的程序,C++作为一门面向对象语言,当然也有泛型这个概念,这就不得不提STL(Standard Template Library,标准模板库),是被融入C++标准程序库里面的一个高