java 用什么缓存(Java的应用缓存cache如何入门)
今天给各位分享java 用什么缓存的知识,其中也会对Java的应用缓存cache如何入门进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
java ehcache
java ehcache是什么,让我们一起了解一下?
EhCache是一个纯Java的进程内缓存框架,具有快速、精干等特点。主要面向通用缓存,Java EE和轻量级容器,具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序的功能。
ehcache主要的特性有:
1、简单,快速。
2、提供Hibernate的缓存实现。
3、多种缓存策略。
4、缓存数据有两级:内存和磁盘,因此无需担心容量问题。
5、缓存数据会在虚拟机重启的过程中写入磁盘。
6、可以通过RMI、可插入API等方式进行分布式缓存。
7、具有缓存和缓存管理器的侦听接口。
8、支持多缓存管理器实例,以及一个实例的多个缓存区域。
Ehcache在java中是如何使用的?
具体代码如下:代码实现的功能非常简单,即创建CacheManager,往里面存放一个Cache,然后往cache里面存数据和取数据,目的是展示Ehcache的基本使用。/** * XXX.com Inc. * Copyright (c) 2004-2014 All Rights Reserved. */ package com.test.encache; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; /** * * @author XXX * @version $Id: EncacheTest.java, v 0.1 2014年8月8日 下午5:30:03 XXX Exp $ */ public class EncacheTest { //一些配置参数 //private final static String configFileName = "ehcache.xml"; //private final static int maxEntriesLocalHeap = 1000; private static CacheManager cacheManager; static String cacheName = "cache1"; public static void main(String[] args) { ehcacheSetUp(); ehcacheUse(); } private static void ehcacheSetUp() { cacheManager = CacheManager.create(); //CacheConfiguration configuration = new CacheConfiguration(configFileName, // maxEntriesLocalHeap); //Cache cache = new Cache(configuration); cacheManager.addCache(cacheName); } private static void ehcacheUse() { Cache cache1 = cacheManager.getCache(cacheName); String key = "key1"; String value = "value1"; writeSomeData(cache1, key, value); Element element = readSomeData(cache1, key, value); System.out.println(element); } private static void writeSomeData(Cache cache, String key, String value) { cache.put(new Element(key, value)); } private static Element readSomeData(Cache cache, String key, String value) { return cache.get(key); }}
北大青鸟java培训:浏览器缓存功能在使用上都有哪些类型
缓存功能的存在,让我们在浏览网页和访问防止的时候可以更快的加载我们需要的内容,而今天北大青鸟http://www.kmbdqn.cn/就通过案例分析来了解一下,浏览器的缓存功能在使用上都有哪些类型。
1.ServiceWorkerServiceWorker是运行在浏览器背后的独立线程,一般可以用来实现缓存功能。
使用ServiceWorker的话,传输协议必须为HTTPS。
因为ServiceWorker中涉及到请求拦截,所以必须使用HTTPS协议来保障安全。
ServiceWorker的缓存与浏览器其他内建的缓存机制不同,它可以让我们自由控制缓存哪些文件、如何匹配缓存、如何读取缓存,并且缓存是持续性的。
ServiceWorker实现缓存功能一般分为三个步骤:先需要先注册ServiceWorker,然后监听到install事件以后就可以缓存需要的文件,那么在下次用户访问的时候就可以通过拦截请求的方式查询是否存在缓存,存在缓存的话就可以直接读取缓存文件,否则就去请求数据。
当ServiceWorker没有命中缓存的时候,我们需要去调用fetch函数获取数据。
也就是说,如果我们没有在ServiceWorker命中缓存的话,会根据缓存查找优先级去查找数据。
但是不管我们是从MemoryCache中还是从网络请求中获取的数据,浏览器都会显示我们是从ServiceWorker中获取的内容。
2.MemoryCacheMemoryCache也就是内存中的缓存,主要包含的是当前中页面中已经抓取到的资源,例如页面上已经下载的样式、脚本、图片等。
读取内存中的数据肯定比磁盘快,内存缓存虽然读取高效,可是缓存持续性很短,会随着进程的释放而释放。
一旦我们关闭Tab页面,内存中的缓存也就被释放了。
那么既然内存缓存这么高效,我们是不是能让数据都存放在内存中呢?这是不可能的。
计算机中的内存一定比硬盘容量小得多,操作系统需要精打细算内存的使用,所以能让我们使用的内存必然不多。
Java的应用缓存cache如何入门
跟session不是一个概念,简单的谈下我个人对缓存的看法吧,你可以把它想象成一个容量大的hashMap,可以往里面get set数据,由于数据存在内存当中而不是数据库中,所以存取速度较快。
java常用的缓存有:ehcache, oscache,jcache,这些cache都是单机的,即存在本机的内存中,另外分布式的cache我用过memcache,它被独立部署在一台服务器上,可以实现多个客户端共用缓存。
一般用到缓存的场景:1.在处理并发请求,需要及时响应的。2.加快系统响应速度。举个例子:比如购物网站有售卖物品的排行榜,这种数据都是由数据库中N多表关联查询排序得到的,那么就可以存在缓存当中,当页面请求查看排行榜时直接取缓存中的数据。后台定时任务根据一定的时间间隔计算好排行结果,再替换到当前缓存中。这就是一个简单的缓存应用示例。
具体用法你可以参考各个缓存的说明文档,百度一下很多的。纯手打,望采纳~
好了,文章到此结束,希望可以帮助到大家。