thinkphp缓存技术

thinkphp缓存技术

thinkphp对缓存技术提供了极大的支持。memcache是我们最常用到的缓存技术。

thinkphp关于缓存配置:

  静态缓存配置

HTML_FILE_SUFFIX=   '.shtml'

 默认静态文件后缀

HTML_CACHE_ON         =          false

 默认关闭静态缓存

HTML_CACHE_TIME=  60

静态缓存有效期

HTML_READ_TYPE=     1

静态缓存读取方式0 readfile 1 redirect


数据缓存配置

DATA_CACHE_TYPE=   'File'

数据缓存类型支持File Db Apc Memcache Shmop Sqlite Xcache Apachenote Eaccelerator

DATA_CACHE_PATH   =   TEMP_PATH

缓存路径设置(仅对File方式缓存有效)

DATA_CACHE_TIME=   -1

数据缓存有效期

DATA_CACHE_COMPRESS=    false

数据缓存是否压缩缓存

 DATA_CACHE_CHECK=           false

数据缓存是否校验缓存

DATA_CACHE_SUBDIR=          false

使用子目录缓存(自动根据缓存标识的哈希创建子目录)

DATA_PATH_LEVEL  =   1

子目录缓存级别



那么在thinkphp中如何用到memcache呢?

1. 查看官方手册。

所有的缓存方式都被统一使用公共的调用接口,这个接口就是Cache缓存类。
        
缓存类的使用很简单:
        
$Cache = Cache::getInstance('缓存方式','缓存参数');
        
例如,使用Xcache作为缓存方式,缓存有效期60秒。
        
$Cache = Cache::getInstance('Xcache',array('expire'=>'60'));
        
存取缓存数据
        
$Cache->set('name','ThinkPHP');  // 缓存name数据
        
$value = $Cache->get('name');  // 获取缓存的name数据
        
$Cache->rm('name');  // 删除缓存的name数据
如果使用memcached时。要在配置文件config.php中增加。修改配置文件config.php文件,在配置文件中加入:

'DATA_CACHE_TYPE' => 'Memcache',  //默认是file方式进行缓存的,修改为memcache
'MEMCACHE_HOST'   =>  ' tcp://127.0.0.1:11211',  //memcache服务器地址和端口,这里为本机。
'DATA_CACHE_TIME' => '10',  //过期的秒数。

通过以上方法连接服务器后,再用代码进行处理,发现可以用了。

class CacheAction extends Action{
//缓存类
    function index() {
       
        $cache = Cache::getInstance(); //修改config.php文件后,里面就不需要填参数了,直接调用,实例化。
        $cache->set("name","thinkphp");
        $value = $cache->get("name");
        var_dump($cache);
        if($value){
            dump($value);
        }else{
       
            //执行SQL语句
        }
       
     }
}

2 . S(  )方法。

在官方手册中,提供了一种便捷的缓存方式S( ):

S("data","123456",10);
$data = S('data');
var_dump($data);

结果也是正确的。但是注意的是:这种方式默认是采用file文件方式来缓存。直接这样输出也是可以得到结果的。要想采用memcache进行缓存。也一样在cofig.php加上:

'DATA_CACHE_TYPE' => 'Memcache',  //默认是file方式进行缓存的,修改为memcache
'MEMCACHE_HOST'   =>  ' tcp://127.0.0.1:11211',  //memcache服务器地址和端口,这里为本机。
'DATA_CACHE_TIME' => '10',  //过期的秒数。

那么就变成用memcache来存储缓存了。 那么我推荐:在config.php配置文件中设定好,用S ( )方法来存储和读取。更高效。dedecms教程

你可能感兴趣的:(thinkphp缓存技术)