缓存类core/cache.php

Source:phpbone.com  Author:IT柏拉图
2013-11-20

缓存类,理所当然就是做缓存的了,通过 $GLOBALS['config']['cache'] 数组进行配置缓存类型,支持file/memcache/memcached(分布式) 三种缓存方式。
缓存配置文件如下所示:

  1. $GLOBALS['config']['cache'] = array
  2.     'enable'  => true, 
  3.     'cache_type' => 'file',    //缓存类型 
  4.     'cache_time' => 7200, 
  5.     'file_cachename' => PATH_CACHE.'/cfc_data',  //文件缓存位置 
  6.     'df_prefix' => 'mc_df_'
  7.     'memcache' => array
  8.         'time_out' => 1, 
  9.         //如果使用Memcached扩展,这里可以指定多个memcached服务器 
  10.         'host' => array(  'memcache://127.0.0.1:11211/bone_frame' ) 
  11.     ) 
  12. ); 

    如果使用单台服务器,推荐使用phpbone的hash文件缓存,经测试,普通pc机,每秒写入可达8000次以上,读取可达3-5万次,考虑管理便利性,实际上比普通单机版的memcache更实用。

成员变量:
cache::$need_mem = true;
这个值可以指示,是否缓存数据到内存数组,默认值为true表示要存储,当用户第二次读取缓存数据时,会直接从内存数组中获取,而不管缓存设置,如果你进行的是需要执行很多次某些数据模型读取之类的操作,请把这值设置为false,以免系统开太大的数组,反而因占用过大内存造成速度慢。

1、设置一个缓存(设置或更改)
cache::set($prefix, $key, $value, $cachetime=-1)
$prefix            前缀(主要是防止多模块或多站点不同人写程序导致缓存key相同,因此加前缀区别)
$key               缓存key
$value            缓存值
$cachetime    缓存时间,默认 -1 表示不限,其它数字为秒。

2、读取一个缓存
cache::get($prefix, $key,)
$prefix            前缀
$key               缓存key
return mix value 或 false

3、删除一个缓存
cache::del($prefix, $key,)
$prefix            前缀
$key               缓存key

4、指定另一个缓存配置
cache::reconfig( $config )
通常如果使用的是系统文件缓存,如果你想把缓存文件存储到其它位置,可以用这方法重新指定配置
$config 参数设置与 $GLOBALS['config']['cache'] 一致。

5、手动释放数组内存
cache::free_mem()
相当于把 $instance->mc_handle->caches 重置为空数组
 

分享到: