码迷,mamicode.com
首页 > 其他好文 > 详细

ShopNC学习笔记四:缓存设计

时间:2016-01-13 17:47:53      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

系统可以对数据进行多种形式缓存,包括文件方式、共享内存方式和数据库方式。目前已支持的缓存方式包括:file、apc 、eAccelerator 、memcache 和 xcache,开发者也可以开发更加适合自己的缓存。

系统由Cache缓存类进行缓存操作,由Cache::getInstance方法完成缓存类型实例化:

//取得memcache缓存实例

$obj_cache = Cache::getInstance(‘memcache‘);

//缓存赋值

$obj_cache->set(‘uid‘,1000);

//读取缓存

$obj_cache->get(‘uid‘);

//删除缓存

$obj_cache->rm(‘uid‘);

系统需要将部分常用表信息(如基本配置表、商品分类表、快递表、SEO表等)生成缓存,为了便于操作,系统对这些表的缓存处理封装到专有的cache模型中,使用Model(‘cache‘)->call(表名) 即可得到符合缓存格式的表信息。

为了方便对缓存的操作,系统新增了H和F方法,H方法对缓存类操作再次进行封装。如取得系统cache/setting.php缓存信息:

H(‘setting‘);

内部执行过程为:首先取得file缓存实例

$obj_cache = Cache::getInstance(‘file‘)

判断操作类型(删除缓存?、缓存赋值?缓存读取?),然后执行

$obj_cache->get(‘setting‘);

取得缓存内容,至此执行完毕。

使用H方法将setting表信息生成到文件缓存:

H(‘setting‘,true,‘file‘);

内部执行过程为:首先取得file类型缓存实例,

$obj_cache = Cache::getInstance(‘file‘)

判断操作类型(删除缓存?、缓存赋值?缓存读取?),然后执行

$obj_cache->rm(‘setting‘);

删除原有setting缓存,实例化cache模型并执行_setting方法来取得setting表中的内容,

$list = Model(‘cache‘)->call($key);

       使用set方法写入缓存

       $obj_cache->set($key, $list, null, $expire);

       最后返回true,至此缓存生成成功。

       F 方法也可以操作缓存,但它与H方法不同,F只是一种快速度读、写文件缓存的方法,不可用于内存缓存的操作,F方法不能直接将数据表内容生成缓存,只可将PHP中已经存的内容(如数组、字符串等)生成到文件缓存,在读取文件缓存时,推荐使用效率更高的F方法。

F(‘setting‘);    //取得setting缓存

F(‘setting‘,$data);    //将$data数组生成到setting文件缓存

ShopNC学习笔记四:缓存设计

标签:

原文地址:http://www.cnblogs.com/zhijiangch/p/5127622.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!