Yii2是PHP开发(http://www.maiziedu.com/course/php/)中最好的框架,因为yii2框架有精心设计的框架结构和缓存支持,所以yii框架特别适合开发大型应用,如门户网站、论坛、内容管理系统(CMS)、电子商务项目和 RESTful Web 服务等。今天我们不讲yii框架的其他内容,就讲讲yii2的缓存及使用方法。
惯例的第一步是配置yii组件。
方便起见,我们的缓存组件配置在common\config\main.php文件,先来简单配置下文件缓存
'components' => [
'cache' => [
'class' => 'yii\caching\FileCache',
'cachePath' => '@runtime/cache2',
],
],
所谓的文件缓存,其实就是把我们要缓存的数据存放到文件内,那数据又缓存到哪里了呢?
//默认的缓存路径是@app\runtime\cache目录下,如果你想要修改缓存路径,可以像上面配置一样,配置下cachePath即可
我们直接来操作看看
$cache = Yii::$app->cache;
$data = $cache->get('cache_data_key');
if ($data === false) {
//这里我们可以操作数据库获取数据,然后通过$cache->set方法进行缓存
$cacheData = ......
//set方法的第一个参数是我们的数据对应的key值,方便我们获取到
//第二个参数即是我们要缓存的数据
//第三个参数是缓存时间,如果是0,意味着永久缓存。默认是0
$cache->set('cache_data_key', $cacheData, 60*60);
}
var_dump($data);
刷新下页面可以看到第一次打印的结果是false,第二次我们得到缓存结果cache_data。我们可以打开文件看看文件内是否有我们的数据
a:2:{i:0;s:10:"cache_data";i:1;N;}
可以很清楚的看到我们的数据被序列化存放在文件内。
接下来我们再看看如何把我们的缓存数据存放到memcache中去。
很简单,你只需要像下面这样简单的配置即可,操作完全跟我们前面一致。
'components' => [
'cache' => [
'class' => 'yii\caching\MemCache',
'servers' => [
[
'host' => 'server1',
'port' => 11211,
'weight' => 100,
],
[
'host' => 'server2',
'port' => 11211,
'weight' => 50,
],
],
],
],