首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP - Memcached -会话处理

PHP - Memcached -会话处理
EN

Stack Overflow用户
提问于 2014-07-10 01:45:25
回答 1查看 436关注 0票数 1

因此,我需要将会话处理从基于文件的(默认)更改为基于缓存的处理,因此当我向集群添加节点时,集群中的任何app节点都可以访问会话数据。

我的经验一直是使用配置文件集中缓存节点,在我的例子中是cache.yml。使用此文件,我标识了3个缓存服务器(vc-1、vc-2、vc3)。如果我错了,请纠正我的错误,但只要我在创建缓存对象时使用addServers调用,然后使用该缓存对象设置/获取缓存数据,数据就可以存储在任何vc-*服务器上,但就应用程序而言,它是一个(池式)缓存服务器。示例:

  1. app-a-1将会话数据(sessionId:1337)存储到池(vc-1)中。
  2. app-a-2处理下一个请求,从池(vc-1)中提取会话数据(sessionId:1337),然后存储在池(vc-2)中。
  3. app-a-1处理下一个请求,从池(vc-2)中提取会话数据(sessionId:1337),然后存储在池(vc-3)中。

在读取了php memecacheD 文档之后,我可以轻松地通过php.ini文件切换会话处理,但是为了保持这种池效应,我必须配置(傀儡) php.ini文件来构建服务器字符串列表,只要我想添加/删除一个新的缓存服务器。

因此,我的问题是,除了实现我自己的会话处理程序之外,还有其他选择,这样读/写就可以使用前面提到的缓存对象来确保“池”缓存效果,而不必编辑php.ini文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-28 13:28:53

实际上,我最终使用了双代理,它应该处理基于健康检查的memcached节点的加/减。它很容易设置,基本上为vcache创建了DNS记录,并有指向vcache的代码:22122。

如果使用AWS,您可以执行相同的操作,但不必使用双代理,而是设置一个elasticache集群,然后创建一个CNAME dns条目,该条目指向elasticache端点。这样,您就不必对单个代码进行更改,因为指向elasticache端点的CNAME条目仍将解析为vcache。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24666269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档