3.5 缓存
系统可以对数据进行多种形式缓存,包括文件方式、共享内存方式和数据库方式。目前已支持的缓存方式包括: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文件缓存
Copyright ©2009 - 2014 shopnc.net.All rights reserved.
Powered By ShopNC