「java做缓存」java缓存使用
今天给各位分享java做缓存的知识,其中也会对java缓存使用进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java怎么实现map 缓存技术
- 2、java 缓存机制 实现的原理?
- 3、什么是Java缓存技术Cache
- 4、java实现缓存技术
- 5、Java实现简单的缓存机制原理
- 6、哪位了解java数据缓存技术有哪些
java怎么实现map 缓存技术
/**
* 缓存池
* @author xiaoquan
* @create 2015年3月13日 上午10:32:13
* @see
*/
public class CachePool {
private static CachePool instance;//缓存池唯一实例
private static MapString,Object cacheItems;//缓存Map
private CachePool(){
cacheItems = new HashMapString,Object();
}
/**
* 得到唯一实例
* @return
*/
public synchronized static CachePool getInstance(){
if(instance == null){
instance = new CachePool();
}
return instance;
}
/**
* 清除所有Item缓存
*/
public synchronized void clearAllItems(){
cacheItems.clear();
}
/**
* 获取缓存实体
* @param name
* @return
*/
public synchronized Object getCacheItem(String name){
if(!cacheItems.containsKey(name)){
return null;
}
CacheItem cacheItem = (CacheItem) cacheItems.get(name);
if(cacheItem.isExpired()){
return null;
}
return cacheItem.getEntity();
}
/**
* 存放缓存信息
* @param name
* @param obj
* @param expires
*/
public synchronized void putCacheItem(String name,Object obj,long expires){
if(!cacheItems.containsKey(name)){
cacheItems.put(name, new CacheItem(obj, expires));
}
CacheItem cacheItem = (CacheItem) cacheItems.get(name);
cacheItem.setCreateTime(new Date());
cacheItem.setEntity(obj);
cacheItem.setExpireTime(expires);
}
public synchronized void putCacheItem(String name,Object obj){
putCacheItem(name,obj,-1);
}
/**
* 移除缓存数据
* @param name
*/
public synchronized void removeCacheItem(String name){
if(!cacheItems.containsKey(name)){
return;
}
cacheItems.remove(name);
}
/**
* 获取缓存数据的数量
* @return
*/
public int getSize(){
return cacheItems.size();
}
}
public class CacheItem {
private Date createTime = new Date();//创建缓存的时间
private long expireTime = 1;//缓存期满的时间
private Object entity;//缓存的实体
public CacheItem(Object obj,long expires){
this.entity = obj;
this.expireTime = expires;
}
public boolean isExpired(){
return (expireTime != -1 new Date().getTime()-createTime.getTime() expireTime);
}
/**
* 省略getter、setter方法
*/
}
java 缓存机制 实现的原理?
所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。缓存机制的实现有很多中,这里讲一种。
public class CacheImmutale{
//声明要缓存的类名;
private final String className;
//声明10个缓存池
private static CacheImmutale[] cache= new CachImmutale[10];
//记录缓存的位置,最新位置为[pos-1]
private static int pos=0;
//构造器
public CacheImmutale(String className){
this.className=className;
}
//返回方法
public String getName(){
return className;
}
//返回对象实例名,传进要使用的实例名,由该方法去判断缓存池中是否存在
public static CacheImmutale valueOf(String className){
//遍历缓存池,若存在,返回
for(int i=0;i
if(cache[i]!=nullcache[i].getName().equals(className)){
return cache[i];
}
}
//如果缓存池满,则采取先进先出
if(pos==10){
cache[0]=new CacheImmutale(className);
pos=1;
return cache[0];
}
else{
cache[pos++]=new CacheImmutale(className);
return cache[pos-1];
}
}
public boolean equals(Object obj){
if(obj instanceof CacheImmutale){
CacheImmutale c1=(CacheImmutale)obj;
if(className.equals(c1.getName())){
return true;
}
}
return false;
}
public int hashCode(){
return className.hashCode();
}
}
什么是Java缓存技术Cache
java缓存技术
一、什么是缓存
1、Cache是高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问
2、凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为 Cache
二、缓存的分类
1、基于web应用的系统架构图
2、在系统架构的不同层级之间,为了加快访问速度,都可以存在缓存
操作系统磁盘缓存-减少磁盘机械操作
数据库缓存-减少文件系统I/O
应用程序缓存-减少对数据库的查询
Web服务器缓存-减少应用服务器请求
客户端浏览器缓存-减少对网站的访问。
java实现缓存技术
session最好少用,一般系统都用session来存储用户信息,session用多了对系统开销不好,缓存也尽量少用,要用的话都用在基本不会改变的数据上,不然会影响系统,如果经常改变的量,用了缓存,如:一个程序在用缓存中的数据,而另一个程序却在修改缓存的数据,那边程序就会出现不符合的数据了,如果回答对你有帮助,请把分给我吧,谢谢
Java实现简单的缓存机制原理
package qinbo hui;
/*
设计思想来自-回钦波(qq: )
*/
public class CacheConfModel implements java io Serializable{
private long beginTime;
private boolean isForever = false;
private int durableTime;
public long getBeginTime() {
return beginTime;
}
public void setBeginTime(long beginTime) {
this beginTime = beginTime;
}
public boolean isForever() {
return isForever;
}
public void setForever(boolean isForever) {
this isForever = isForever;
}
public int getDurableTime() {
return durableTime;
}
public void setDurableTime(int durableTime) {
this durableTime = durableTime;
}
}
package qinbo hui;
import java util *;
import test CacheConfModel;
/*
设计思想来自-回钦波(qq: )
*/
public class CacheMgr {
private static Map cacheMap = new HashMap();
private static Map cacheConfMap = new HashMap();
private CacheMgr(){
}
private static CacheMgr cm = null;
public static CacheMgr getInstance(){
if(cm==null){
cm = new CacheMgr();
Thread t = new ClearCache();
t start();
}
return cm;
}
/**
* 增加缓存
* @param key
* @param value
* @param ccm 缓存对象
* @return
*/
public boolean addCache(Object key Object value CacheConfModel ccm){
boolean flag = false;
cacheMap put(key value);
cacheConfMap put(key ccm);
System out println( now addcache== +cacheMap size());
return true;
}
/**
* 删除缓存
* @param key
* @return
*/
public boolean removeCache(Object key){
cacheMap remove(key);
cacheConfMap remove(key);
System out println( now removeCache== +cacheMap size());
return true;
}
/**
* 清除缓存的类
* @author wanglj
* 继承Thread线程类
*/
private static class ClearCache extends Thread{
public void run(){
while(true){
Set tempSet = new HashSet();
Set set = cacheConfMap keySet();
Iterator it = erator();
while(it hasNext()){
Object key = it next();
CacheConfModel ccm = (CacheConfModel)cacheConfMap get(key);
//比较是否需要清除
if(!ccm isForever()){
if((new Date() getTime() ccm getBeginTime())= ccm getDurableTime()* * ){
//可以清除 先记录下来
tempSet add(key);
}
}
}
//真正清除
Iterator tempIt = erator();
while(tempIt hasNext()){
Object key = tempIt next();
cacheMap remove(key);
cacheConfMap remove(key);
}
System out println( now thread================ +cacheMap size());
//休息
try {
Thread sleep( * L);
} catch (InterruptedException e) {
// TODO Auto generated catch block
e printStackTrace();
}
}
}
}
lishixinzhi/Article/program/Java/hx/201311/25737
哪位了解java数据缓存技术有哪些
一、什么是缓存
1、Cache是高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问
2、凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为 Cache
常见的缓存技术有哪些?
一、操作系统缓存
1、文件系统提供的Disk Cache:操作系统会把经常访问到的文件内容放入到内存当中,由文件系统来管理
2、当应用程序通过文件系统访问磁盘文件的时候,操作系统从Disk Cache当中读取文件内容,加速了文件读取速度
3、Disk Cache由操作系统来自动管理,一般不用人工干预,但应当保证物理内存充足,以便于操作系统可以使用尽量多的内存充当Disk Cache,加速文件读取速度
4、特殊的应用程序对文件系统Disk Cache有很高的要求,会绕开文件系统Disk Cache,直接访问磁盘分区,自己实现Disk
5、Cache策略
Oracle的raw device(裸设备) – 直接抛弃文件系统
MySQL的InnoDB: innodb_flush_method = O_DIRECT
二、数据库缓存
缓存策略:a、Query Cache; b、Data Buffer
三、应用程序缓存
包括对象缓存、查询缓存、页面缓存
四、web服务器端缓存
基于代理服务器模式的Web服务器端缓存,如squid/nginx
Web服务器缓存技术被用来实现CDN(内容分发网络 content delivery network)
被国内主流门户网站大量采用
不需要编程,但仅限于新闻发布类网站,页面实时性要求不高
五、基于ajax的浏览器缓存
使用AJAX调用的时候,将数据库在浏览器端缓存
只要不离开当前页面,不刷新当前页面,就可以直接读取缓存数据
只适用于使用AJAX技术的页面
java做缓存的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java缓存使用、java做缓存的信息别忘了在本站进行查找喔。