当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

网站缓存数据及时更新的实现[Java编程]

赞助商链接



  本文“网站缓存数据及时更新的实现[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

一个网站的实现不可避免的需求处理大量的内存数据,这大多都出于网站性能的考虑和办理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;
 }

}

缓存的切面更新普通我喜好利用Spring AOP,简单而实用,普通需求都能满意,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编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 网站缓存数据及时更新的实现
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .