session最好少用,一般系统都用session来存储用户信息,session用多了对系统开销不好,缓存也尽量少用,要用的话都用在基本不会改变的数据上,不然会影响系统,如果经常改变的量,用了缓存,如:一个程序在用缓存中的数据,而另一个程序却在修改缓存的数据,那边程序就会出现不符合的数据了,如果回答对你有帮助,请把分给我吧,谢谢
所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。
缓存主要可分为二大类:
一、通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式;
二、内存缓存,也就是实现一个类中静态Map,对这个Map进行常规的增删查
你这个分数太少了吧,程序到是有,不过给你有点可惜
CacheMgrjava
import javautil;
import cnjavassframeworkcachevoCacheConfModel;
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();
tstart();
}
return cm;
}
/
增加缓存
@param key
@param value
@param ccm 缓存对象
@return
/
public boolean addCache(Object key,Object value,CacheConfModel ccm){
boolean flag = false;
cacheMapput(key, value);
cacheConfMapput(key, ccm);
Systemoutprintln("now addcache=="+cacheMapsize());
return true;
}
/
删除缓存
@param key
@return
/
public boolean removeCache(Object key){
cacheMapremove(key);
cacheConfMapremove(key);
Systemoutprintln("now removeCache=="+cacheMapsize());
return true;
}
/
清除缓存的类
@author wanglj
继承Thread线程类
/
private static class ClearCache extends Thread{
public void run(){
while(true){
Set tempSet = new HashSet();
Set set = cacheConfMapkeySet();
Iterator it = setiterator();
while(ithasNext()){
Object key = itnext();
CacheConfModel ccm = (CacheConfModel)cacheConfMapget(key);
//比较是否需要清除
if(!ccmisForever()){
if((new Date()getTime()-ccmgetBeginTime())>= ccmgetDurableTime()601000){
//可以清除,先记录下来
tempSetadd(key);
}
}
}
//真正清除
Iterator tempIt = tempSetiterator();
while(tempIthasNext()){
Object key = tempItnext();
cacheMapremove(key);
cacheConfMapremove(key);
}
Systemoutprintln("now thread================>"+cacheMapsize());
//休息
try {
Threadsleep(601000L);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
}
}
}
CacheConfModeljava
public class CacheConfModel implements javaioSerializable{
private long beginTime;
private boolean isForever = false;
private int durableTime;
public long getBeginTime() {
return beginTime;
}
public void setBeginTime(long beginTime) {
thisbeginTime = beginTime;
}
public boolean isForever() {
return isForever;
}
public void setForever(boolean isForever) {
thisisForever = isForever;
}
public int getDurableTime() {
return durableTime;
}
public void setDurableTime(int durableTime) {
thisdurableTime = durableTime;
}
}
顺便说一句,缓存的管理不是靠时间久来计算的,是靠最大不活动间隔计算的,你的设计思想有问题
楼主你好,可能是病毒,可以使用腾讯电脑管家进行深度清理,云查杀和第二代自主研发反病毒引擎,管家系统修复引擎和金山云查杀引擎,拥有账号全景防卫系统,尤其针对欺诈及盗号打击方面,有更加出色的表现
步骤一
maven需要添加下面代码:
[java] view plaincopy
<dependency>
<groupid>orgspringframework</groupid>
<artifactid>spring-context-support</artifactid> <version>${springversion}</version>
</dependency>
以及
[java] view plaincopy
<dependency>
<groupid>netsfehcache</groupid>
<artifactid>ehcache</artifactid>
<version>${ehcacheversion}</version>
</dependency>
将最新版本放到占位符中: ${springversion} 和 ${ehcacheversion}
步骤二
在应用程序中将以下代码加入contextxml:
[java] view plaincopy
<bean id="cacheManager" class="orgspringframeworkcacheehcacheEhCacheCacheManager" p:cachemanager-ref="ehcache">
<bean id="ehcache" class="orgspringframeworkcacheehcache EhCacheManagerFactoryBean" p:configlocation="classpath:configuration/ehcachexml" p:shared="true"> <cache:annotation-driven></cache:annotation-driven></bean></bean>
步骤三
将ehcachexml添加到类路径
一个基本的ehcachexml入下:
[java] view plaincopy
<ehcache xmlns:xsi=">
步骤一
maven需要添加下面代码:
[java] view plaincopy
<dependency>
<groupid>orgspringframework</groupid>
<artifactid>spring-context-support</artifactid> <version>${springversion}</version>
</dependency>
以及
[java] view plaincopy
<dependency>
<groupid>netsfehcache</groupid>
<artifactid>ehcache</artifactid>
<version>${ehcacheversion}</version>
</dependency>
将最新版本放到占位符中: ${springversion} 和 ${ehcacheversion}
步骤二
在应用程序中将以下代码加入contextxml:
[java] view plaincopy
<bean id="cacheManager" class="orgspringframeworkcacheehcacheEhCacheCacheManager" p:cachemanager-ref="ehcache">
<bean id="ehcache" class="orgspringframeworkcacheehcache EhCacheManagerFactoryBean" p:configlocation="classpath:configuration/ehcachexml" p:shared="true"> <cache:annotation-driven></cache:annotation-driven></bean></bean>
步骤三
将ehcachexml添加到类路径
一个基本的ehcachexml入下:
[java] view plaincopy
<ehcache xmlns:xsi=">
以上就是关于java实现缓存技术全部的内容,包括:java实现缓存技术、java中还有哪些缓存机制技术、使用java实现以个简单的缓存机制等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)