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为合法的标识符

缓存的应用

   在读取数据库的时候把读取的数据缓存起来 当用户再次调用读取数据库函数时先判断缓存是否过期 如果缓存没有过期可直接从缓存中读取数据 缓存过期再读取数据库 从而减轻数据库的压力

posted @ 2015-03-23 18:07  heihei_yh  阅读(777)  评论(0编辑  收藏  举报