Yii在Web分布式下将Session存储到Memcached
来源:互联网 发布:什么是数据库应用程序 编辑:程序博客网 时间:2024/06/05 21:10
当网站的访问越来越大的时候一台机器无法支持迸发,或都是为了做到去单点,都需要在后端搭建一个集群来处理用户的请求,由于传统的PHP Session是文件级的存储,那么如果一个用户在第一次登录的时候这个Session文件存在 A 服务器上,而第二次的时候被分到了B 服务器上,则又认为他没有登录了(当然配置好负载均衡的是可以让同一个用户永远在同一台机器上的,这个的可以略过。。。),所以我们需要将它存在一个别的地方,我选的是Memcached,存在这里面,当然后期可能会选择Redis因为它在取值方面可以更精确,省内网带宽。
在Yii里面我想达到将Session信息存储到Memcached里面只需要稍做配置即可,我当前的Yii版本为yii-1.1.13.e9e4a0
'session' => array( 'class' => 'CCacheHttpSession', 'autoStart' => true, 'cacheID' => 'sessionCache', // we only use the sessionCache to store the session 'cookieMode' => 'only', 'timeout' => 1400,),'sessionCache' => array( 'class' => 'system.caching.CMemCache', 'servers' => array( array( 'host' => '192.168.10.193', 'port' => 11211, 'weight' => 6 ), array( 'host' => '192.168.10.226', 'port' => 11211, 'weight' => 3 ), array( 'host' => '192.168.10.228', 'port' => 11211, 'weight' => 2 ), ),),
测试一下登录没有问题,然后非常好奇,它真的就存入到Memcached里面了吗?我们如何来验证一下呢?
为了省去新建一个Controller所以我就直接写一个action到SiteController里面去了。
public function actionTestSessionWithMemcached(){ /* * 得到sessionID号 * 计算出来存在memcached的key值是多少. */ $sessionId = Yii::app()->session->sessionID; echo "key:", $key = CCacheHttpSession::CACHE_KEY_PREFIX.$sessionId; /** * 这相当于是直接使用Memcached 连接,和session没有任何挂钩, * 我们来看一下session的数据是否真的就存在了memcached里边。 * 通过计算出来的key直接用 get命令获取然后将数据打印出来就能看到值了。 * 测试的时候先登录噢,别不登录就开始测试估计会获取不到值,以为有问题呢! */ $mem = Yii::app()->sessionCache; $data =$mem->get($key); var_dump($data);}
0 0
- Yii在Web分布式下将Session存储到Memcached
- 配置session存储到memcached
- PHP如何将session保存到memcached中?如何分布式保存PHP session
- 使用memcached实现session远程分布式存储
- 使用memcached实现session远程分布式存储
- Memcached实现Session的分布式存储
- 什么是memcached and 使用memcached实现session远程分布式存储
- 将session的值存储到memcached中去,配置以及方法和注意事项
- memcached-session-manager配置-分布式存储登录用户信息
- 关于分布式WEB 的session共享(memcached+tomcat)
- 在分布式项目中使用memcached+cookie替代session
- Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用
- 用Memcached存储Session
- thinkphp memcached存储session
- 将session存储到redis中
- 如何将PHP session信息缓存到memcached里面
- Memcached分布式缓存,模拟Session
- 采用Memcached实现分布式Session
- [HTML5]推荐10款非常优秀的 HTML5 开发工具
- Setup Syslog with LogAnalyzer on Ubuntu Server
- 【干货】国外程序员整理的 C++ 资源大全
- Unity3D AssetBundle包加密
- 错误it is already used by statement which invoked this stored functiontrigger的解决方法
- Yii在Web分布式下将Session存储到Memcached
- windows服务
- 学习北风CMS项目的时候的一些知识点 (spring, mybatis ...)
- 【练习】有两个文件context.txt和words.conf,请尝试将他们合并成为一段文字,
- 多条件模糊查询
- MFC下DLL的共享方式与静态方式
- Android 代码混淆、第三方平台安全加密、渠道分发!
- 使用循环语句打印矩阵
- shell 编程之grep 选项