加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php – 使用memcache作为会话存储?

发布时间:2020-05-25 10:33:05 所属栏目:PHP 来源:互联网
导读:我目前有一个巨大的问题.两天前,我的网站在一台服务器上运行的太多了,所以我再购买了两台,并将它们集群(rsync和负载平衡). 然后我开始注意到一个用户会打到服务器1,然后在下一个请求命中server3,但是他们的会话仍然在server1而不是server3,并且他们不再登录.

我目前有一个巨大的问题.两天前,我的网站在一台服务器上运行的太多了,所以我再购买了两台,并将它们集群(rsync和负载平衡).

然后我开始注意到一个用户会打到服务器1,然后在下一个请求命中server3,但是他们的会话仍然在server1而不是server3,并且他们不再登录.

我建议使用会话商店的memcache.

我的脚本已经使用$_SESSION.

>我们可以安装memcache并启用会话处理程序支持,并设置session.save_handler =“memcache”来强制php使用memcache?
>是否有任何应用程序编程需要完成使用memcache?
>这会解决我的服务器问题之间的会话吗?
>会话存储在创建时存储在所有服务器上,还是像主内存缓存服务器那样存储?

我正在使用codeiginiter框架

您将需要设置内存缓存以在其中一台服务器上运行,并使所有服务器对会话使用相同的memcache实例.否则,如果他们每个运行自己的memcache实例,你将有与以前相同的问题.

除了相应地配置memcache,并告诉PHP将其用作会话处理程序,您不必对代码进行任何更改.

为了澄清我在这里给出的建议,如果将所有三个服务器组合到一个池中,只要每个PHP实例以相同的顺序引用这些服务器,就不会有任何问题. memcache使用client side hashing,所以您将保证在相同的服务器上读/写相同的密钥.当然,如果您以任何方式更改该列表,则会话将无效.

memcache开发人员实际上甚至不建议您使用memcache存储会话数据,因为它不是持久的,因此如果您必须重新启动内存缓存(或发生某些事情),则所有用户都将被注销.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读