缓存的使用可以明显改善用户访问的体验,加快用户访问的速度,同时也可以有效降低服务器的负担,提升服务器的吞吐能力。一般来讲,缓存可以分为几个层次。一个是前端的各种html、css、js的缓存,这些静态资源一般我们采用cdn来解决。二是服务器端的缓存,这部分缓存实际是是对数据访问的缓存。对于那些不经常发生变动的或者访问频率较高的数据进行缓存处理,是一种十分经济有效的提升用户体验的方式。接下来我们就讲讲在yii2中如何使用数据缓存。
YII2中原生为我们提供了缓存组建,用户可以自行配制不同的缓存存储方式。
Yii::$app->cache->get($key)
尝试从缓存中取回数据而不用担心 <code>Yii::$app->cache 可能是 null
。默认使用的是文件缓存的方式,如果想更换只需修改配置文件即可
'components' => [ 'cache' => [ 'class' => 'yii\caching\FileCache', ], ]
使用的时候也非常的简单,我们可以使用全局的变量Yii::$app->cache来获取缓存组建实例。一般来说缓存的使用方式如下:
$key = 你的缓存key <span class="redactor-invisible-space">$cache = Yii::$app->cache; $data = $cache->get($key);<span class="redactor-invisible-space"> if ($data === false) {<p> // 缓存已过期,或者在缓存中找不到缓存数据 $data = 通过数据库完成数据查询逻辑 //将获取到的数据重新写入缓存并设置过期时间 $cache->set($key, $data,缓存时间);<span class="redactor-invisible-space"> </span>} return $data;<span class="redactor-invisible-space"></span></p></span></span>
代码结构非常简单,实际上我们只需要把缓存组件当成一个大的内存数组使用就可以了,简单吧。
经过缓存后我们可以通过YII2自带的debug工具条看到数据库访问的频次减少了,在缓存期内,我们不再需要访问数据库获取数据。