|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
手机用到的是用j2me所编出来的小程序。
一个网站的完成不成制止的必要处置大批的内存数据,这年夜多都出于网站功能的思索息争决I/O瓶颈成绩,如JavaEye网站的首页排名数据和博客频道的排名等数据,都举行了缓存处置,并且并不是是及时的,出格是首页的排名数据几近是一天赋会更新一次的,一样,QQ等流派网站也存在大批静态化内存数据,以是一个网站缓存的处置是相当主要的,而且好的架构必要做到代码无侵进性,也就是说内存的更新,日记的纪录等操纵都应当是“切面”处置,在我厥后的网站开辟中,我一样平常城市界说一个缓存类,以下:
Java代码
public static LinkedList<Login> regRecentUser=new LinkedList(); //比来注册职员
public static LinkedList<Login> regLoginedUser=new LinkedList();//比来登录职员
public static List<Topic> hotTopic=new ArrayList();//最热宣布话题
而且会本人完成对象的排序接口,如最抢手的话题,多是按话题对象的某几个属性的权重分派来完成的,相似代码以下:
Java代码
public class TopicCompare implements Comparator{
//抢手的话题与顶的数量和批评的数量有关,权重分派比例为4:6
public int compare(Object arg0, Object arg1) {
if((arg0 instanceof Topic) && (arg1 instanceof Topic)){
double y=((Topic)arg0).getAgreeit()*0.4 + ((Topic)arg0).getCmtnum()*0.6;
double h=((Topic)arg1).getAgreeit()*0.4 + ((Topic)arg1).getCmtnum()*0.6;
if(y==h) return 0;
else if(y>h) return 1;
else return -1;
}
return 0;
}
}
缓存的切面更新一样平常我喜好利用SpringAOP,复杂而有用,一样平常需求都能满意,Aspect语法对照庞大,没工夫看,呵呵
Java代码
import java.lang.reflect.Method;
import org.springframework.aop.AfterReturningAdvice;
import com.common.cache.WebCacheUtils;
import com.cxlh.dao.hibernate.Login;
public class LoginAdvice implements AfterReturningAdvice {
public void afterReturning(Object returnValue, Method method, Object[] args,
Object target) throws Throwable {
if(method.getName().equalsIgnoreCase("checkUserLogin") && !returnValue.toString().equalsIgnoreCase("null")){
//比来登任命户缓存更新
System.out.println("=======update login cache");
WebCacheUtils.addRegLoginedUser((Login)returnValue);
}else if(method.getName().equalsIgnoreCase("addUser")){
//更新最新注册用户缓存
System.out.println("=======update add user cache");
WebCacheUtils.addRegRecentUser((Login)args[0]);
}
}
}
如许,比来登录和最新注册用户的缓存数据城市按自界说排序划定规矩举行及时的缓存更新了,不晓得如许的及时缓存处置关于年夜并发量的网站是不是能满意请求,没有举行过功能测试!慎用!!!
恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架? |
|