memcache缓存ecshop分类信息

2011-11-18 22:26 来源:www.chinab4c.com 作者:ecshop专家

     memcache缓存ecshop分类信息,这个是很有必要的。我们上章讲述了memcache和ecshop结合使用,先搭建好ecshop和memcache的一个良好的运行环境。才能保证ecshop和memcache结合良好。

     我们在什么时候缓存该数据呢。在什么时候取对应的缓存数据呢,缓存数据如何管理,这些都是一系列的问题要处理.修改缓存方面的东西我们必须将注意数据的更新,保存和删除.

      memcache只能存储最有效的数据,最常用的数据存储在数据库中最适合了。但是如果常常变化的数据,就不适合缓存在memcache中。而且存储的时候我们必须考虑数据管理。比如在ecshop里面很多地方都要调用分类信息.所以某个分类。我们直接可以存储在memcache里面.而且分类信息根本就很少修改。比如分类ID,分类名称。这些到处都需要调用。我们可以通过放在memcache里面。全站都能调用该数据。可以将该分类做为存储工享数据.

   function get_cat_info($cat_id)

 global $memcache;

 $cache_var = "men_category_info_".$cat_id;//定义mem 变量
 
 $data = $memcache->get($cache_var);
 
 if($data === false){
  
  $data = $GLOBALS['db']->getRow('SELECT cat_name,cat_id, keywords, cat_desc, style, grade, filter_attr, parent_id,can_user_bonuse FROM ' . $GLOBALS['ecs']->table('category') .
        " WHERE cat_id = '$cat_id'");
  
  $memcache->set($cache_var , $data);

  return $data;

 }else{

  return $data;
 
 }

   
}

     当第一次运行这个分类的时候,我们可以判断该分类信息是否在memcache中存在,如果不存在,我们将从数据库中读出该分类信息。如果该分类信息不存在$memcache中,那么我们就从数据库中查询,存放到memcache中。如果下次发现有该数据,直接存储就OK了。

    这样就完成了memcache缓存ecshop分类信息.

   来源:http://www.chinab4c.com