yii 阅读 4942
Yii2 第2章 缓存

Yii2 第2章 缓存

2017-01-20 • lulubin

一、数据缓存

1.1、数据缓存之 CRUD

https://file.lulublog.cn/images/3/2022/08/Vk9kgQ429I9c3I4u3YcYX3nX22IUE6.png?sign=6f30d183e2a855af85914c44dc15cc81&t=6ae36d80

1.2、数据缓存之有效期设置

https://file.lulublog.cn/images/3/2022/08/deW8GFNa1IWN8JKhyhkZKCn8E2Ekkf.png?sign=15bf41ef0a10215275c6494469c0ac37&t=6ae36d80

1.3、数据缓存中依赖关系

https://file.lulublog.cn/images/3/2022/08/jKK1SI6j3h0J5Ki03I0H556mJ31T5z.png?sign=4ace99b986fc779bf6ee53b503d9e6cf&t=6ae36d80

https://file.lulublog.cn/images/3/2022/08/I89GyrNGDJf8nmGUJ9ZlMN8d5ljnOg.png?sign=eaa4679a840e11f044e8f51f25902d3a&t=6ae36d80

https://file.lulublog.cn/images/3/2022/08/M0EfDN4EU6dFaz5LW0eD6fn6FlldFd.png?sign=98d8d26b1f34830cc055209204f12d9b&t=6ae36d80

二、片段缓存

2.1、片段缓存之使用

https://file.lulublog.cn/images/3/2022/08/ddDr4Xdz3Am0rak3DA63dagGLmR6X4.png?sign=f07fb7e1e74357bd1c7c570e601ba7f3&t=6ae36d80

2.2、片段缓存之设置

https://file.lulublog.cn/images/3/2022/08/ME9olloeZQ2FLv57VqOjVPQ5qLJH95.png?sign=10b13c530a605a5cfe512bbfefd1be09&t=6ae36d80

https://file.lulublog.cn/images/3/2022/08/Ut7h5pu4hMMUpMH5daHzmpENDTp7Su.png?sign=482f2678c8ed466ed01fa7553354c79c&t=6ae36d80

https://file.lulublog.cn/images/3/2022/08/dias9nNESYaZhIPEptSnpqr5Spepi2.png?sign=82b5607b44cc4d27d96141fe1d46f72d&t=6ae36d80

https://file.lulublog.cn/images/3/2022/08/vLYBQr9tylYLzDlliOER8BILOY8tj2.png?sign=28aa0b3671757a5a165bbb83b727fde6&t=6ae36d80

https://file.lulublog.cn/images/3/2022/08/Iw56wvAyWwKdd63ikDW5iwRzwaYciw.png?sign=c3aaba9d434b73910977cccbedc01c0c&t=6ae36d80

三、页面缓存

https://file.lulublog.cn/images/3/2022/08/M80DQ9M4qa1zSOqDd24DAQ4xSD1zxa.png?sign=376a1b1735544faafa770a7dc4914e67&t=6ae36d80

四、HTTP缓存:缓存在浏览器

4.1、lastModified、ETag

https://file.lulublog.cn/images/3/2022/08/sKd03kRXXxar0dzRRZbBkkKf4jr4JX.png?sign=eeeae22d8f709f7e04f9105dd94dd745&t=6ae36d80

https://file.lulublog.cn/images/3/2022/08/Ku40OuOOo00O0Za7U0hOoo70h2uTau.png?sign=fcb25aa76f75cca7ebf9046a913c61ed&t=6ae36d80

https://file.lulublog.cn/images/3/2022/08/zn298EvQVGVNVHuceK58vVNGtnuGcK.png?sign=f7bdd5dbf4499dda9b2e5e1ff3a777cf&t=6ae36d80

https://file.lulublog.cn/images/3/2022/08/jZqFpJmoMwQy8aMFg70X3RHFBMRfjx.png?sign=d0514b2c468ea4125fe2567ab3f24457&t=6ae36d80

https://file.lulublog.cn/images/3/2022/08/hF7TT6hK3e9W92c03fkKP3C693h4L6.png?sign=61c25a9845120d114891b4e66c7239dc&t=6ae36d80

4.2、实例

https://file.lulublog.cn/images/3/2022/08/D8vfli3xJILxktxcvCipI7s7P1pS1z.png?sign=9848cdf4acf3c85905fe5132ec27cfab&t=6ae36d80

五、yii2 缓存介质的介绍

5.1、缓存介绍

①、缓存

临时存储数据,将从数据库查询到的数据放在数据库、磁盘、内存中

②、读写速度

内存>磁盘>数据库

5.2、缓存介质

①、Apc缓存

单台服务器最快的数据缓存介质,将数据放在共享的内存块中

- 在单台Web服务器的内存中设置一定的内存大小,用于Apc控制下的共享内存块

- 服务器下有两个应用:www.luluyii.cn和mysql.luluyii.cn,它们共享着Apc内存块

- 注意:多个应该key冲突:比如有两个相同key,但是value不一样时,会冲突;

- 解决方法:为每个key添加项目名的前缀,比如www_a、mysql_a

②、MemCache

多台服务器最快的数据缓存介质,将数据分布式的存储在服务器内存中

- yii2配置MemCache:'cache'=>['class'=>'yii\caching\MemCache','servers'=>['host'=>'127.0.0.1','port'=>'80','weight'=>100]],'keyPrefix'=>'www_']

- 解释:weight指权重,权重越大,该应用的内存越大;keyPrefix指存储数据的前缀,一般用项目名称作为前缀

- 案例:在前台某控制器中设置cache数据:yii::$app->cache->set('arr','a'=>'20');在前后台均可以通过\yii::$app->cache->get('arr')获取到名为arr的数据;

③、FileCache

文件缓存,主要存储一些大的string

- yii2文件缓存目录:runtime/cache

- 文件缓存作用域:单个web应用,比如yii2前后台的文件缓存相互独立

- yii2文件缓存配置:在应用主件中配置'cache'=>['class'=>'yii\caching\FileCache']

④、ArrayCache

只对当前的请求有用