我想知道memcached如何管理php会话的缓存我的意思。我想设计一个扩展的php应用程序,并在每个http-PHP服务器中包含一个memcached层(db,app cache和session caching),但是如果memcached不复制de data,当用户来到webserver1时看不到相同的webserver2中的会话。
需要复制memcached1和memcached2来处理php会话 提前谢谢。问候。
答案 0 :(得分:0)
虽然我同意这里毫无疑问,但我们可以尝试帮助OP了解memcache的工作原理。
当您使用内存缓存内存缓存时,如何设置它取决于您当前的基础架构。
例如,如果您只有1个Web服务器,则可以在同一台计算机上安装memcache,同时也可以在该计算机上安装数据库层。这有助于提高站点的性能,因为站点可以从memcache(在内存中)而不是从数据库(在磁盘上,并且读取速度较慢)获取数据。以这种方式使用它很好,但是由于您的站点需要更好的性能或可伸缩性,您可能会在负载均衡器后面启动一组Web服务器。
这是事情变得有点棘手的时候。你拥有所有这些机器,并且你认为你需要在每台机器上都有memcache,那么我们如何复制这些实例呢?简单的答案是你不要。如果您有多个Web服务器,最好的方法是将memcache放在它自己的服务器(或负载均衡器后面的集群)上,这样每个Web服务器都会为内存缓存服务器命中相同的IP地址。 / p>
您不必担心保持同步,因为memcache的工作方式是创建一个散列,指定密钥已分配给哪个服务器(当您有一个memcache服务器集群时)。
基于这个问题,您似乎需要执行以下操作之一:
1。)阅读系统架构
2.)雇用某人来构建您的系统层。
我最好的建议是为memcache实例使用单个服务器,并将Web服务器设置为使用memcache,而不是尝试在每个Web服务器上运行memcache。
答案 1 :(得分:0)
约瑟夫。
我坚持你的观点,我已经使用一个单独的memcached服务器(以及redis)来测试架构。我的意图是将应用程序服务器“打包”在一个单元(docker)中,并测量负载参数以部署新实例,以扩展基础结构。
我找到了这个。
感谢您的回复!
问候。