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