您的位置:首页 > 编程语言 > PHP开发

thinkphp缓存技术

2013-04-24 22:51 218 查看

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教程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: