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官方安装手册

http://redis.io/download

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的更多相关文章

  1. CRL快速开发框架系列教程三(更新数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  2. Android Studio系列教程三--快捷键

    Android Studio系列教程三--快捷键 2014 年 12 月 09 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzhang.com/ ...

  3. NGUI系列教程三

    接下来我们再来看Progress Bar和Slider,对比参数我们可以发现,Progress Bar和slider的明显区别在于slider多一个Thumb选项,这里的Thumb就是我们拖动的时候点 ...

  4. 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级)

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (高级) 企业库验证应用程序模块之配置文件模式: ...

  5. 黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级)

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(三) Validation Application Block (初级) 企业库提供了一个很强大的验证应用程序模 ...

  6. Fastify 系列教程三 (验证、序列化和生命周期)

    Fastify 系列教程: Fastify 系列教程一 (路由和日志) Fastify 系列教程二 (中间件.钩子函数和装饰器) Fastify 系列教程三 (验证.序列化和生命周期) 验证 Fast ...

  7. webpack4 系列教程(三): 多页面解决方案--提取公共代码

    这节课讲解webpack4打包多页面应用过程中的提取公共代码部分.相比于webpack3,4.0版本用optimization.splitChunks配置替换了3.0版本的CommonsChunkPl ...

  8. WPF系列教程——(三)使用Win10 Edge浏览器内核 - 简书

    原文:WPF系列教程--(三)使用Win10 Edge浏览器内核 - 简书 在需要显示一些 H5网站的时候自带的WebBrowser总是显示不了,WebBrowser使用的是IE内核,许多H5新特性都 ...

  9. Unity3D脚本中文系列教程(三)

    http://dong2008hong.blog.163.com/blog/static/4696882720140302323886/ Unity3D脚本中文系列教程(二) 示,属性不被序列化或显示 ...

  10. Spring Boot2 系列教程(三十)Spring Boot 整合 Ehcache

    用惯了 Redis ,很多人已经忘记了还有另一个缓存方案 Ehcache ,是的,在 Redis 一统江湖的时代,Ehcache 渐渐有点没落了,不过,我们还是有必要了解下 Ehcache ,在有的场 ...

随机推荐

  1. Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(三)

    前两章我为大家详细介绍了如何搭建Maven环境.Spring MVC的流程结构.Spring MVC与Struts2的区别以及示例中的一些配置文件的分析.在这一章,我就对示例的层次结构进行说明,以及M ...

  2. 编码,加解密,签名,Hash

    工作中会听到各种各样是是而非的词汇,base64,url,sha256,rsa,hash等等,你能很好的分清这些词语吗? 这次我想把它们统一的整理说明下: 一: 编码 编码是信息从一种形式或格式转换为 ...

  3. [iOS]提交App报错ERROR ITMS -90207

    前几天上传项目N多次,都跳出这个问题 甚是头痛,于是乎各种搜索 1. 第三方的info.plist里面Executable file这个要删除(自己的不能删哦) 2.检查一下用来做跳转到第三方应用的设 ...

  4. Objective-C:三种文件导入的方式以及atomic和nonatomic的区别

    一.三种文件导入的方式比较:   类的前项声明@class.import.include: 1.采用@class 类名的方式,它会告诉编译器有这么一个类,目前不需要知道它内部的实例变量和方法是如何定义 ...

  5. Linux下音频编程-输出音频文件

    程序实现了在Linux下播放Ok.wav的功能.程序首先调用fstat函数获得文件相关信息(主要是文件大小信息).通过malloc函数分配指定的内存空间,并将online.wav读入内存:然后,打开声 ...

  6. python 中的map 详解

    python中的map函数应用于每一个可迭代的项,返回的是一个结果list.如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理.map()函数接收两个参数,一个是函 ...

  7. c语言类型转换注意事项

    转载自: http://blog.csdn.net/zhuimengzh/article/details/6728492 1.隐式转换     C在以下四种情况下会进行隐式转换:        1.算 ...

  8. POJ-3187 Backward Digit Sums (暴力枚举)

    http://poj.org/problem?id=3187 给定一个个数n和sum,让你求原始序列,如果有多个输出字典序最小的. 暴力枚举题,枚举生成的每一个全排列,符合即退出. dfs版: #in ...

  9. SASS -- 基本认识

    SASS 是一种 CSS 的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得 CSS 的开发,变得简单和可维护. SASS 提供四个编译风格的选项: * nested:嵌套缩进的 css ...

  10. cocos2dx 坐标系 -转

    (原文出处找不到了) 无论是搞2d还是3d开发,最需要搞清楚的就是坐标系,这部分混乱的话就没啥奔头了.所以玩cocos2d,一上来就先把各种与坐标有关的东西搞清楚. 基本的两个坐标系:屏幕坐标系和GL ...