限时 5折! 详情

yii2基础之缓存的介绍和使用

博主推荐:yii2实战式教程是一套简单易学、幽默风趣、干货多多、众人大赞的高质量教程,囊括 yii2基础入门、yii2高级进阶的很多知识点,可以说是迄今最好的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, 
            ], 
        ], 
    ], 
],
作者 白狼
本文版权归作者,欢迎转载,但未经作者同意必须保留 此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。