Yii系列教程(三):集成Redis
1安装Redis
切换至/usr/local/src下,下载并安装redis:
$ wgethttp://redis.googlecode.com/files/redis-2.6.12.tar.gz
$ tar xzf redis-2.6.12.tar.gz
$ cd redis-2.6.12
$ make
进入redis-2.6.12目录,修改redis.conf:
daemonize yes
启动服务端:
$src/redis-server redis.conf
进入命令行验证服务是否启动:
$src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
2安装Yii的Redis插件
目前主要有两种Yii插件:
Ø Rediscache:基于predis(Redis的纯PHP实现客户端),无需安装Redis for PHP扩展。
Ø YiiRedis:基于phpredis客户端,需要安装Redis for PHP扩展。
这里采用Rediscache插件,避免线上安装Redis for PHP扩展。
2.1下载安装
从以下地址下载Rediscache插件:
http://www.yiiframework.com/extension/rediscache/files/redis.zip
将插件解压到helloyii/app/protected/extensions中:
插件文件部署后的位置应为:helloyii/app/protected/extensions/redis/CredisCache.php
2.2配置Rediscache
1.helloyii/app/protected/config/main.php
===============================================================================
return array(
'components' => array(
…
'cache'=>array(
'class'=>'ext.redis.CRedisCache', //对应protected/extensions/redis/CredisCache.php
'servers'=>array(
array(
'host'=>'127.0.0.1',
'port'=>6379,
),
),
),
),
…
);
3安装Yii的会话Redis插件
3.1下载安装
从GitHub上下载插件https://github.com/lincsanders/PRedisCacheHttpSession
解压到helloyii/app/protected/extensions下:
插件文件部署后的位置应为:
helloyii/app/protected/extensions/PredisCacheHttpSession/PRedisCacheHttpSession.php
3.2配置PRedisCacheHttpSession
'session'=>array(
'class' =>'ext.PRedisCacheHttpSession.PRedisCacheHttpSession',
'database' => 9,
),
注意:缓存和会话的database属性一定要区分开,用不同的Redis数据库来保存。
4编写控制器
编写一个读写缓存的控制器进行测试。
2.helloyii/app/protected/controllers/CacheController.php
===============================================================================
class CacheController extends CController
{
public function actionFetch($key, $value)
{
Yii::app()->cache->set($key, $value);
$data = Yii::app()->cache->get($key);
Yii::app()->getController()->render('result',array('data'=>$data));
}
}
3.helloyii/app/protected/views/cache/result.php
===============================================================================
<?php
echo$data;
?>
现在访问:http://helloyii.com/app/index.php?r=cache/fetch&key=a&value=b
然后通过redis-cli命令行客户端查看下缓存的变化:
可以通过redis-cli客户端查看缓存:
$ src/redis-cli
redis> keys ‘*’
…
参考资料
1官方安装手册
2 Yii的Redis插件1:rediscache
http://www.yiiframework.com/extension/rediscache/
3 Yii的Redis插件2:yiiredis
https://github.com/phpnode/YiiRedis
4 Yii CCache接口的API
http://www.yiichina.com/api/CCache#get-detail
5 Redis在YiiFramework中的使用
http://denghai260.blog.163.com/blog/static/726864092012323101628773/
Yii系列教程(三):集成Redis的更多相关文章
- CRL快速开发框架系列教程三(更新数据)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- Android Studio系列教程三--快捷键
Android Studio系列教程三--快捷键 2014 年 12 月 09 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzhang.com/ ...
- NGUI系列教程三
接下来我们再来看Progress Bar和Slider,对比参数我们可以发现,Progress Bar和slider的明显区别在于slider多一个Thumb选项,这里的Thumb就是我们拖动的时候点 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级)
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级) 企业库验证应用程序模块之配置文件模式: ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级)
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级) 企业库提供了一个很强大的验证应用程序模 ...
- Fastify 系列教程三 (验证、序列化和生命周期)
Fastify 系列教程: Fastify 系列教程一 (路由和日志) Fastify 系列教程二 (中间件.钩子函数和装饰器) Fastify 系列教程三 (验证.序列化和生命周期) 验证 Fast ...
- webpack4 系列教程(三): 多页面解决方案--提取公共代码
这节课讲解webpack4打包多页面应用过程中的提取公共代码部分.相比于webpack3,4.0版本用optimization.splitChunks配置替换了3.0版本的CommonsChunkPl ...
- WPF系列教程——(三)使用Win10 Edge浏览器内核 - 简书
原文:WPF系列教程--(三)使用Win10 Edge浏览器内核 - 简书 在需要显示一些 H5网站的时候自带的WebBrowser总是显示不了,WebBrowser使用的是IE内核,许多H5新特性都 ...
- Unity3D脚本中文系列教程(三)
http://dong2008hong.blog.163.com/blog/static/4696882720140302323886/ Unity3D脚本中文系列教程(二) 示,属性不被序列化或显示 ...
- Spring Boot2 系列教程(三十)Spring Boot 整合 Ehcache
用惯了 Redis ,很多人已经忘记了还有另一个缓存方案 Ehcache ,是的,在 Redis 一统江湖的时代,Ehcache 渐渐有点没落了,不过,我们还是有必要了解下 Ehcache ,在有的场 ...
随机推荐
- 【原创】Eclipse中为SVN设置快捷键
SVN是深受开发者喜爱的版本控制工具,其较CVS有更好的控制策略.在Android开发中,我也选择SVN作为版本控制工具.Eclipse的SVN插件名叫Subclipse,可以到htt ...
- 事务回滚后,自增ID仍然增加
回滚后,自增ID仍然增加. 比如当前ID是7,插入一条数据后,又回滚了.然后你再插入一条数据,此时插入成功,这时候你的ID不是8,而是9.因为虽然你之前插入回滚,但是ID还是自增了. 如果你认为自增I ...
- javascript whenReady
var whenReady=(function(){ var funcs=[]; var ready=false; function handler(e){ if (ready) { return; ...
- ajax返回JSON时的处理方式
JSON中对象通过“{}”来标识,一个“{}”代表一个对象,如{“AreaId”:”123”},对象的值是键值对的形式(key:value). json_encode() 该函数主要用来将数组和对象, ...
- ajax练习习题二三级联动
异步执行 1数据传输收发数据的时候不用等待对方接受,可以继续发送 2Ajax 在调用处理页面处理数据的时候,下面的代码可以继续执行,效率高 同步执行 1收发数据的时候要等到对方接受的成功,才可以继续发 ...
- android布局 及 布局属性
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> ...
- Volley HTTP库系列教程(4)Volley内置的几种请求介绍及示例,StringRequest,ImageRequest,JsonObjectRequest
Making a Standard Request Previous Next This lesson teaches you to Request a String 返回String Requ ...
- Redis的过滤器(SCAN)功能
在写另一篇文章( link )的时候,涉及到过滤器(filter)功能.以前没有接触过,整理如下. 主要参考这两篇: http://blog.csdn.net/u011510825/article/d ...
- Quickhit快速击键
一.项目分析 根据输入速率和正确率将玩家分为不同等级,级别越高,一次显示的字符数越多,玩家正确输入一次的得分也越高.如果玩家在规定时间内完成规定次数的输入,正确率达到规定要求,则玩家升级.玩家最高级别 ...
- 新版本 JSAPI微信支付V3 C# DEMO
小弟在公众号后台无意中点了更新(微信支付接口升级)PS:想都没有想,心里还乐滋滋的免费的干嘛不升级...后果来了.面临着支付不能用了,代码需要重新更新. /** * JS_API支付demo * == ...