PHP深入浅出学Yii2缓存Cache组件源码级详解

白俊遥博客


什么是缓存组件Cache

缓存是提升 Web 应用性能简便有效的方式。 通过将相对静态的数据存储到缓存并在收到请求时取回缓存, 应用程序便节省了每次重新生成这些数据所需的时间。

定义缓存组件

Yii2的缓存是通过组件Component实现的,在项目的配置文件中,配置components->cache实现对缓存组件的定义。

项目配置文件的路径为config/web.php

页面缓存PageCache

作为网站来讲,Yii2的页面缓存非常便捷地将已经渲染完全的网页结果保存起来,并在一个缓存周期内不需要再次处理页面内部的控制器动作逻辑。


配置页面缓存

页面缓存的配置方式为,在控制器层Controller中配置行为behaviors,通过调用过滤器filters的方式,在进入具体页面路径action的之前,对当前key进行计算,并判断缓存是否启用enabled缓存有效期duration。

优化缓存配置

组件的cache在项目的配置文件中定义

这里的自由度就出现了,现在这个配置,是文件缓存,也就是不管是数据缓存还是页面缓存,都是保存在文件里的


根据源码 public $cachePath = '@runtime/cache’;


缓存的文件是放在runtime/cache文件夹的


那么问题就出现了,磁盘的性能是有瓶颈的,文件读写会影响缓存性能。


目前可选的缓存有


yii\caching\ApcCache,APC扩展

yii\caching\DbCache,数据库缓存

yii\caching\DummyCache,假的缓存,就是现在没条件上缓存先把坑占上

yii\caching\FileCache,文件缓存

yii\caching\MemCache,使用 PHP memcache 和 memcached 扩展

yii\redis\Cache,redis

yii\caching\WinCache,使用 PHP WinCache 扩展

yii\caching\XCache,使用 PHP XCache扩展

yii\caching\ZendDataCache,使用Zend Data Cache

总结

我在本文中,通过渐进的方式,讲了如何使用Yii2的缓存组件,对于一般的使用者来讲,已经涵盖了超过九成的坑。




白俊遥博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论