




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java缓存框架JBossCache 是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的改善性能。缓存数据被自动复制,让你轻松进行Jboss服务器之间的集群工作。 JBossCache能够通过Jboss应用服务或其他J2EE容器来运行一个Mbean服务,当然,它也能独立运行。 JBossCache包括两个模块:TreeCache和TreeCacheAOP。 TreeCache -是一个树形结构复制的事务处理缓存。 TreeCacheAOP -是一个“面向对象”缓存,它使用AOP来动态管理POJO .OSCache 标记库由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是个一 个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。OSCache有以下特点:缓存任何对象,你可 以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。拥有全面的API-OSCache API给你全面的程序来控制所有的OSCache特性。永久缓存-缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to- create)数据来保持缓存,甚至能让应用重启。支持集群-集群缓存数据能被单个的进行参数配置,不需要修改代码。缓存记录的过期-你可以有最大限 度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)。Ehcache出自Hibernate,在Hibernate中使用它作为数据缓存的解决方案。Memcache 缓存服务Memcache是的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。为什么会有Memcache和memcached两种名称?其实Memcache是这个项目的名称,而memcached是它服务器端的主程序文件名Memcache工作原理首 先 memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,客户端可以由各种语言编写,目前已知的客户端 API 包括 Perl/PHP/Python/Ruby/Java/C#/C 等等。客户端在与 memcached 服务建立连接之后,接下来的事情就是存取对象了,每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,保存到 memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,这也是为什么 memcached 能够如此高效快速的原因。注意,这些对象并不是持久的,服务停止之后,里边的数据就会丢失。与 许多 cache 工具类似,Memcached 的原理并不复杂。它采用了C/S的模式,在 server 端启动服务进程,在启动时可以指定监听的 ip,自己的端口号,所使用的内存大小等几个关键参数。一旦启动,服务就一直处于可用状态。Memcached 的目前版本是通过C实现,采用了单进程,单线程,异步I/O,基于事件 (event_based) 的服务方式.使用 libevent 作为事件通知实现。多个 Server 可以协同工作,但这些 Server 之间是没有任何通讯联系的,每个 Server 只是对自己的数据进行管理。Client 端通过指定 Server 端的 ip 地址(通过域名应该也可以)。需要缓存的对象或数据是以 key-value 对的形式保存在Server端。key 的值通过 hash 进行转换,根据 hash 值把 value 传递到对应的具体的某个 Server 上。当需要获取对象数据时,也根据 key 进行。首先对 key 进行 hash,通过获得的值可以确定它被保存在了哪台 Server 上,然后再向该 Server 发出请求。Client 端只需要知道保存 hash(key) 的值在哪台服务器上就可以了。Java代码1. 其实说到底,memcache的工作就是在专门的机器的内存里维护一张巨大的hash表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率。2. 3. memcache测试:4. packagecom.ctoall.core;5. 6. importjava.util.Date;7. 8. importcom.danga.MemCached.MemCachedClient;9. importcom.danga.MemCached.SockIOPool;10. 11. SuppressWarnings(deprecation)12. publicclassMemCached13. /创建全局的唯一实例14. protectedstaticMemCachedClientmcc=newMemCachedClient();15. 16. protectedstaticMemCachedmemCached=newMemCached();17. /设置与缓存服务器的连接池18. static19. /服务器列表和其权重20. Stringservers=2:11211;21. Integerweights=3;22. 23. /获取socket连接池的实例对象24. SockIOPoolpool=SockIOPool.getInstance();25. 26. /设置服务器信息27. pool.setServers(servers);28. pool.setWeights(weights);29. 30. /设置初始连接数、最小和最大连接数以及最大处理时间31. pool.setInitConn(5);32. pool.setMinConn(5);33. pool.setMaxConn(250);34. pool.setMaxIdle(1000*60*60*6);35. 36. /设置主线程的睡眠时间37. pool.setMaintSleep(30);38. 39. /设置TCP的参数,连接超时等40. pool.setNagle(false);41. pool.setSocketTO(3000);42. pool.setSocketConnectTO(0);43. 44. /初始化连接池45. pool.initialize();46. 47. /压缩设置,超过指定大小(单位为K)的数据都会被压缩48. mcc.setCompressEnable(true);49. mcc.setCompressThreshold(64*1024);50. 51. /*52. *保护型构造方法,不允许实例化!53. *54. */55. protectedMemCached()56. 57. 58. 59. 60. /*61. *获取唯一实例.62. *return63. */64. publicstaticMemCachedgetInstance()65. 66. returnmemCached;67. 68. 69. /*70. *添加一个指定的值到缓存中.71. *paramkey72. *paramvalue73. *return74. */75. publicbooleanadd(Stringkey,Objectvalue)76. 77. returnmcc.add(key,value);78. 79. 80. publicbooleanadd(Stringkey,Objectvalue,Dateexpiry)81. 82. returnmcc.add(key,value,expiry);83. 84. 85. publicbooleanreplace(Stringkey,Objectvalue)86. 87. returnmcc.replace(key,value);88. 89. 90. publicbooleanreplace(Stringkey,Objectvalue,Dateexpiry)91. 92. returnmcc.replace(key,value,expiry);93. 94. 95. /*96. *根据指定的关键字获取对象.97. *paramkey98. *return99. */100. publicObjectget(Stringkey)101. 102. returnmcc.get(key);103. 104. 105. publicstaticvoidmain(Stringargs)106. 107. MemCachedcache=MemCached.getInstance();108. StudentDOstuDO=newStudentDO();109. stuDO.setId(10);110. stuDO.setAge(28);111. stuDO.setName(sunney);112. stuDO.setAddress(广东省深圳市福田区梅华路105号多丽科技楼9楼);113. cache.add(stu,stuDO);114. StudentDOstuDO1=(StudentDO)cache.get(stu);115. System.out.println(id:+stuDO1.getId();116. System.out.println(name:+stuDO1.getName();117. System.out.println(age:+stuDO1.getAge();118. System.out.println(adress:+stuDO1.getAddress();119. System.out.println(+ok+);120. 121. 122. Java代码1. packagecom.ctoall.core;2. 3. importjava.io.Serializable;4. 5. publicclassStudentDOimplementsSerializable6. 7. /*8. *9. */10. privatestaticfinallongserialVersionUID=3312721104787630488L;11. privateintId;12. privateStringName;13. privateintage;14. privateStringaddress;15. publicintgetId()16. returnId;17. 18. publicvoidsetId(intid)19. Id=id;20. 21. publicStringgetName()22. returnName;23. 24. publicvoidsetName(Stringname)25. Name=name;26. 27. publicintgetAge()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 岗位安全培训事故案例课件
- 安全培训立体化方案课件
- 安全培训程老师课件
- 安全培训福利课件
- 导游安全讲解培训课件
- vr虚拟考试题及答案
- 工程团队节日活动方案(3篇)
- 2025年即兴接力表演题目及答案
- 安全培训的风险评估课件
- 寒号鸟课件信息
- 2025-2026学年人教PEP版(2024)小学英语四年级上册教学计划及进度表
- 数据中心机房空调系统设计方案
- 校长在2025年秋季开学第一次全体教师大会上的讲话:顺时而为造势而上燃光而行守念而稳
- 塔山煤矿班组建设模式课件
- 2025年民族团结知识竞赛题库及答案
- 公交交警安全知识培训课件
- (标准)仓库退租协议书
- 企业燃气充值管理办法
- 初级健康照护师课件
- 《慢性萎缩性胃炎中西医结合诊疗专家共识(2025)》解读
- 食材库房防霉防潮卫生管理措施
评论
0/150
提交评论