thinkphp 缓存数据
thinkphp 中内置了缓存操作 3.1版本的数据缓存方法是cache
基本用法:
S(array('type'=>'xcache','expire'=>60));
缓存初始化
缓存初始化可以支持的参数根据不同的缓存方式有所区别,常用的参数
expire 缓存的有效期
prefix 缓存标识前缀
type 缓存类型
其中 expire prefix type 为标识符 命名遵守标识符的命名规则可以随意替换
ps:如果S方法不传入type参数初始化,可以读取配置文件中设置的DATA_CACHE_TYPE参数值作为默认类型
prefix 参数没有传入会读取配置文件的DATA_CACHE_PREFIX参数值
expire 参数没有传入则读取DATA_CACHE_TIME配置值作为默认值
有些缓存方式会有一些自身特殊的参数,如memcache缓存,还需配置其他的参数:
1 S(array(
2
3 'type'=>'memcache', //缓存类型
4
5 'host'=>'localhost', //主机地址
6
7 'port'=>'11211', //memcache端口号
8
9 'prefix'=>'mem', //缓存前缀
10
11 'expire'=>60 //缓存时间 一分钟
12
13 ));
缓存设置
//设置缓存
S('a',$value);
上面的代码中没有设置缓存时间 会读取配置文件中的DATA_CACHE_TIME中的参数值
在缓存设置的时候改变参数
//缓存数据300s
S('a',$value,300);
// 采用文件方式缓存数据300秒
S('a',$value,array('type'=>'file','expire'=>300));
缓存读取
//读取缓存
$res = S('a');
ps:如果缓存标识不存在或者已经过期,则返回false,否则返回缓存值
缓存删除
//删除缓存
S('a',null);
对象方式操作缓存
//初始化缓存
$cache = S(array('type'=>'xcache','prefix'=>'think','expire'=>600));
$cache->name = 'value'; //设置缓存
$value = $cache->name; //获取缓存
unset($cache->name); //删除缓存
ps:其中name为合法的标识符
缓存的应用
在读取数据库的时候把读取的数据缓存起来 当用户再次调用读取数据库函数时先判断缓存是否过期 如果缓存没有过期可直接从缓存中读取数据 缓存过期再读取数据库 从而减轻数据库的压力