yii2基础之缓存的介绍和使用
一个好的框架是肯定离不开缓存的使用,相反,一个没有缓存的框架也肯定不是一个好框架,好像是一个意思,不管了,我们先来看看yii2中是如何使用缓存的吧。
又是到我们第一步操作的时候了,我们先来配置组件。
方便起见,我们的缓存组件配置在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, ], ], ], ],