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/25737java放入session缓存中
方法如下:
session.setAttribute("Name",Value)
Name 随便取,value就是要放的数据
获取的时候session.getAttribute("Name)
就可以了
你这个分数太少了吧,程序到是有,不过给你有点可惜CacheMgr.java
import java.util.*
import cn.javass.framework.cache.vo.CacheConfModel
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 = set.iterator()
while(it.hasNext()){
Object key = it.next()
CacheConfModel ccm = (CacheConfModel)cacheConfMap.get(key)
//比较是否需要清除
if(!ccm.isForever()){
if((new Date().getTime()-ccm.getBeginTime())>= ccm.getDurableTime()*60*1000){
//可以清除,先记录下来
tempSet.add(key)
}
}
}
//真正清除
Iterator tempIt = tempSet.iterator()
while(tempIt.hasNext()){
Object key = tempIt.next()
cacheMap.remove(key)
cacheConfMap.remove(key)
}
System.out.println("now thread================>"+cacheMap.size())
//休息
try {
Thread.sleep(60*1000L)
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
}
}
}
}
CacheConfModel.java
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
}
}
顺便说一句,缓存的管理不是靠时间久来计算的,是靠最大不活动间隔计算的,你的设计思想有问题
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)