导读:系统可以对数据进行多种形式缓存,包括文件方式、共享内存方式和数据库方式。目前已支持的缓存方式包括:file、redis、apc 、eAccelerator...
系统可以对数据进行多种形式缓存,包括文件方式、共享内存方式和数据库方式。目前已支持的缓存方式包括:
file、redis、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 文件缓存