PHP中yii2缓存的介绍和使用
Yii2是PHP开发(http://www.maiziedu.com/course/php/)中最好的框架,因为yii2框架有精心设计的框架结构和缓存支持,所以yii框架特别适合开发大型应用,如门户网站、论坛、内容管理系统(CMS)、电子商务项目和 RESTful Web 服务等。今天我们不讲yii框架的其他内容,就讲讲yii2的缓存及使用方法。
惯例的第一步是配置yii组件。
方便起见,我们的缓存组件配置在commonconfigmain.php文件,先来简单配置下文件缓存
"components" => [
"cache" => [
"class" => "yiicachingFileCache",
"cachePath" => "@runtime/cache2",
],
],
所谓的文件缓存,其实就是把我们要缓存的数据存放到文件内,那数据又缓存到哪里了呢?
//默认的缓存路径是@app untimecache目录下,如果你想要修改缓存路径,可以像上面配置一样,配置下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" => "yiicachingMemCache",
"servers" => [
[
"host" => "server1",
"port" => 11211,
"weight" => 100,
],
[
"host" => "server2",
"port" => 11211,
"weight" => 50,
],
],
],
],