yii2支持的数据库(Yii框架常见缓存应用实例小结)
类别:编程学习 浏览量:241
时间:2021-10-22 07:16:54 yii2支持的数据库
Yii框架常见缓存应用实例小结本文实例讲述了Yii框架常见缓存应用。分享给大家供大家参考,具体如下:
1 首先,你需要安装apc or memcache or redis 。 安装完后。 以redis 为例。 至于如何安装,多找度娘。
在配置文件中components 添加如下。
|
'cache' => array ( 'class' => 'core.extensions.redis.Predis' , 'class' => 'core.extensions.redis.CRedisCache' , 'servers' => array ( array ( 'host' => '192.168.1.xx' , 'port' =>6379, ), ), ), |
2 最简单的例子。 set get.
|
Yii::app()->cache->set( 'id' , date ( "Y-m-d H:i:s" ), 5); //设置有效时间为5. echo Yii::app()->cache->get( "id" ). "<br/>" ; sleep(2); echo Yii::app()->cache->get( "id" ); //缓存有效期内 会输出数据 sleep(4); echo Yii::app()->cache->get( "id" ); //缓存失效,输出为空 |
3 数据库查询缓存。
|
//3.1 最简单的数据库缓存。 $sql = 'select * from {{settings}}' ; $cmd = Yii::app()->db->cache(10, null)->createCommand( $sql ); $rows = $cmd ->queryAll(); //3.2 加一个缓存依赖的概念。 $dp_sql = "SELECT MAX(id) FROM plat2_settings " ; $dependency = new CDbCacheDependency( $dp_sql ); $sql = "SELECT * FROM `plat2_settings`" ; $rows = Yii::app()->db->cache(1000, $dependency )->createCommand( $sql )->queryAll(); |
上面的代码意思是查询对应的数据的时候,会先判断依赖查询 SELECT MAX(id) FROM plat2_settings 的结果数据是否有更新,
如果有更新,则重新查询数据,如依赖未更新则直接调缓存数据。 过1000 秒后,会重新查询。
4 片断缓存。
|
if ( $this ->beginCache( "xx" )) { echo "test cache " ; $this ->endCache(); } //beginCache 会存在第二个参数,意思是选用指定的缓存器。如果需要使用不同的缓存时,可以定制。 |
5 页面缓存。
|
public function filters(){ return array ( array ( 'COutputCache+index+admin' , 'duration' => 120, 'varyByParam' => array ( 'id' ), ), ); } |
使用控制器,直接对指定的action 进行缓存处理 。
还有varyBySession 可以选配。
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/mu_rain/article/details/47402877
您可能感兴趣
- 缓存系统机制(Smarty缓存机制实例详解三种缓存方式)
- HTML5离线缓存
- mysql缓存是什么(详解mysql查询缓存简单使用)
- HTTP请求中浏览器缓存
- h5嵌入app解决方案(app内嵌H5 webview 本地缓存问题的解决)
- php缓存技术学习(简单实用的PHP文本缓存类实例)
- 查看mysql索引缓存(MySQL查询缓存的小知识)
- laravel数据库数据代码(在Laravel的Model层做数据缓存的实现)
- ASP.NET cache缓存的用法
- 如何解决AJAX 的缓存
- django测试服务器静态资源放哪里(Django使用redis缓存服务器的实现代码示例)
- node.js缓存区(如何利用node实现静态文件缓存详解)
- MVC中outputcache缓存
- php中如何使用缓存(PHP使用OB缓存实现静态化功能示例)
- django数据库详解(Django页面数据的缓存与使用的具体方法)
- html5 设置缓存(HTML5实现应用程序缓存Application Cache)
- 一个30岁男人外遇失败的全过程(一个30岁男人外遇失败的全过程)
- 《无敌破坏王2》 不聊彩蛋,聊聊我从动画里看到的现实那些事儿(无敌破坏王2不聊彩蛋)
- 《寄生虫》 三观不正 人类悲欢从来不相通,感同身受也并非本能(寄生虫三观不正)
- 这部动漫中的女孩子,可比101女孩更加励志(这部动漫中的女孩子)
- 《白狐的人生》热拍 贾征宇偶像包袱难自弃 图(白狐的人生热拍)
- 七夕取消了,牛郎织女没做核酸七夕已经取消(牛郎织女没做核酸七夕已经取消)
热门推荐
- html5的优点是什么
- react组件的参数怎样定义的(详解React中组件之间通信的方式)
- css3 图片边框(css3图片边框border-image的用法)
- nginx+ssl配置详解(nginx配置ssl实现https的方法示例)
- 怎么调input搜索框边框颜色(使用placeholder属性设置input文本框的提示信息)
- python如何遍历列表并提取(Python同步遍历多个列表的示例)
- C# 扩展方法
- python线程池的实现原理(详解python中的线程与线程池)
- php解压压缩包(PHP 实现文件压缩解压操作的方法)
- docker搭建elasticsearch(docker安装ElasticSearch:7.8.0集群的详细教程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9