Yii系列教程(四):使用Memcache保存会话
1环境准备
安装Memcached服务端:
yum -y installmemcached.x86_64
安装PHP-Memcache扩展:
yum -y installphp-pecl-memcache.x86_64
查看PHP-Memcache扩展是否安装成功:
php -m | grepmemcache
2启动Memcached服务
分别在11211和11212端口启动主从两个Memcached服务:
memcached -d -p 11211 -u memcached -m 64 -c1024 -P /var/run/memcached/memcached.pid
memcached -d -p 11212 -u memcached -m 64 -c1024 -P /var/run/memcached/memcached2.pid
具体参数含义如下:
-d选项是启动一个守护进程;
-m是分配给Memcache使用的内存数量;单位是MB;
-u是运行Memcache的用户,或者是root,
-l是监听的服务器IP地址;
-p是设置Memcache监听的端口;
-c选项是最大运行的并发连接数,默认是1024;
-P是设置保存Memcache的pid文件;保存在 /tmp/memcached.pid
通过Telnet客户端访问:
telnet 127.0.0.111211
telnet 127.0.0.111212
注:如果没有安装Telnet则先执行:
yum -y installtelnet.x86_64
也可以通过一个PHP文件测试PHP-Memcache扩展和Memcached服务是否连通:
memcache.php
===============================================================================
<?php
$memcache = new Memcache();
$memcache->connect('127.0.0.1', 11211);
$memcache->set('key', 'Memcache test successful!', 0, 60);
$result = $memcache->get('key');
unset($memcache);
echo $result;
?>
3配置Yii应用组件
Yii对Memcached提供直接支持,只需简单配置,就可以启用Memcached服务端作为Session服务器。
1.helloyii/protected/config/main.php
===============================================================================
array(
'components'=>array(
'cache'=>array(
'class'=>'CMemCache',
'servers'=>array(
array(
'host'=>'127.0.0.1',
'port'=>11211,
),
array(
'host'=>'127.0.0.1',
'port'=>11212,
),
),
),
'session' => array (
'class'=> 'CCacheHttpSession',
'cookieMode' => 'only',
'timeout' => 1200
),
),
)
2.helloyii/protected/controllers/CacheController.php
===============================================================================
class CacheController extends CController
{
public functionactionFetch($key, $value)
{
Yii::app()->session[$key]= $value;
echo'session:['.Yii::app()->session[$key].']';
Yii::app()->cache->set($key,$value);
$data =Yii::app()->cache->get($key);
Yii::app()->getController()->render('result',array('data'=>$data));
}
}
这个例子分别将键值对保存到session和缓存中。
4 Memcached客户端操作
(TODO)
如何对memcache的数据(key-value)进行遍历操作
http://www.cnblogs.com/sunli/archive/2008/11/01/1324153.html
利用shell命令操作Memcached[原创]
memcached命令行参数说明
http://blog.csdn.net/zzulp/article/details/7823511
参考资料
1 CentOS Memcache安装配置教程
2 Yii memcache 保存 session
http://blog.163.com/darwin_zhang/blog/static/12848873620127725122706/
Yii系列教程(四):使用Memcache保存会话的更多相关文章
- NGUI系列教程四(自定义Atlas,Font)
今天我们来看一下怎么自定义NGUIAtlas,制作属于自己风格的UI.第一部分:自定义 Atlas1 . 首先我们要准备一些图标素材,也就是我们的UI素材,将其导入到unity工程中.2. 全选我们需 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block 企业库日志应用程序模块工作原理图: 从上图我们可以 ...
- CRL快速开发框架系列教程四(删除数据)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- C#微信公众号开发系列教程四(接收普通消息)
微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) C#微信公众号开发系列教程三(消息体签名及加解密) C ...
- Android Studio系列教程四--Gradle基础
Android Studio系列教程四--Gradle基础 2014 年 12 月 18 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzhang ...
- Fastify 系列教程四 (求对象、响应对象和插件)
Fastify 系列教程: Fastify 系列教程一 (路由和日志) Fastify 系列教程二 (中间件.钩子函数和装饰器) Fastify 系列教程三 (验证.序列化和生命周期) Fastify ...
- webpack4 系列教程(四): 单页面解决方案--代码分割和懒加载
本节课讲解webpack4打包单页应用过程中的代码分割和代码懒加载.不同于多页面应用的提取公共代码,单页面的代码分割和懒加载不是通过webpack配置来实现的,而是通过webpack的写法和内置函数实 ...
- Influx Sql系列教程四:series/point/tag/field
influxdb中的一条记录point,主要可以分为三类,必须存在的time(时间),string类型的tag,以及其他成员field:而series则是一个measurement中保存策略和tag集 ...
- ASP.NET 5系列教程 (四):向视图中添加服务和发布应用到公有云
向视图中添加服务 现在,ASP.NET MVC 6 支持注入类到视图中,和VC类不同的是,对类是公开的.非嵌套或非抽象并没有限制.在这个例子中,我们创建了一个简单的类,用于统计代办事件.已完成事件和平 ...
随机推荐
- 老是出现dispolse 找不到合适的方法来重写
复制到输出目录:不复制 生成操作:编译
- Java-数据结构与算法-逢3减1-面向对象
1.要求:有一群人围成一圈数数,逢3退1人,要求算出最后留下来的人的下标2.用面向对象思想,有三个步骤:(1)有哪些类:找名词--"有一群人围成一圈",所以有类People,Peo ...
- MDK5.01百度云下载,安装微软雅黑混合字体,字体效果很棒,解决显示中文的BUG
微软雅黑字体http://pan.baidu.com/s/1nt9Epuh 初步尝试,以前的小BUG都已经解决了.下面是安装雅黑字体后的字体效果,很爽.第一步:安装雅黑字体.第二步:选择Edit--- ...
- 【查找结构 2】二叉查找树 [BST]
当所有的静态查找结构添加和删除一个数据的时候,整个结构都需要重建.这对于常常需要在查找过程中动态改变数据而言,是灾难性的.因此人们就必须去寻找高效的动态查找结构,我们在这讨论一个非常常用的动态查找树— ...
- c# ComboBox特殊属性
c# ComboBox特殊属性 comboBox1.ValueMember = "Id"; 设置值 不显示的comboBox1.DisplayMember = " ...
- 测试用例生成工具ALLPAIRS(转)
ALLPAIRS是一个测试用例设计工具,用于Windows,但移植到了多种平台,以适应该脚本文件的一些小改动.它自动对所有实验技术进行设计,通过这个工具的方法可以在海量的数据组合中选择少量的数据生成测 ...
- Kruskal
算法描述:克鲁斯卡尔算法需要对图的边进行访问,所以克鲁斯卡尔算法的时间复杂度只和边又关系,可以证明其时间复杂度为O(eloge). 算法过程: 1.将图各边按照权值进行排序 2找出权值最小的边,(条件 ...
- [CCF2015.12]题解
201512-1 数位之和 水题一个,取模除以10胡搞即可(不知道字符串为什么不行 #include <algorithm> #include <iostream> #incl ...
- emplace_back减少内存拷贝和移动
--------<深入应用C++11:代码优化与工程级应用>第2章使用C++11改进程序性能,本章将分别介绍右值引用相关的新特性.本节为大家介绍emplace_back减少内存拷贝和移动. ...
- HeadFirst jsp 03 (MVC)
创建一个小的 web 应用, mvc, 麻雀虽小, 五脏俱全 补1: servlet没有main()方法, 他们受控与另外一个Java应用, 这个Java应用称为 容器, tomcat就是这么一个容器 ...