【问题标题】:Configuring PHP Memcached sessions for clustering为集群配置 PHP Memcached 会话
【发布时间】:2014-04-25 22:29:57
【问题描述】:

我已经看过一些关于此的帖子,但无法让它发挥作用

我有 2 个 ubuntu 服务器,为了测试,我安装了以下:

apt-get install memcached
apt-get install apache2
apt-get install php5
apt-get install libapache2-mod-php5
apt-get install php5-memcached

我的 /etc/memcached.conf 有

服务器 1

-m -p 11211 -l 192.168.0.1

服务器 2

-m -p 11211 -l 192.168.0.2

我的 /etc/php5/apache2/php.ini

服务器 1

session.save_handler = memcached
session.save_path = "192.168.0.1:11211,192.168.0.2:11211"

服务器 2

session.save_handler = memcached
session.save_path = "192.168.0.2:11211,192.168.0.1:11211"

和我对 /var/www/ 的小测试

session_start();

echo “Session save_handler is: “.ini_get(”session.save_handler”).”
“;
echo “Session save_path is: “.ini_get(”session.save_path”).”
“;

if(isset($_SESSION['KEY']))
{
echo “KEY found: “.$_SESSION['KEY'];
}
else
{
$_SESSION['KEY'] = ‘test’;
echo ‘KEY set to: ‘.$_SESSION['KEY'];
}

它适用于每个单独的服务器,这意味着它确实保存了会话。但我没有在对方服务器中获得会话“副本”(无论如何它都会启动一个新会话)

我真的不知道我是否对测试代码有意见,或者我是否遗漏了 conf。我还尝试了 memcache (withouth d) 并将 tcp:// 添加到路径中,但结果是确切的……

更新:

更清楚地说,我希望我的会话保存在两台服务器上,问题是它只保存在它们的本地 memcqched 上,从不保存在远程服务器上。根据http://www.php.net/manual/en/memcache.ini.php,它应该可以工作

【问题讨论】:

  • 这篇文章可能会有所帮助:digitalocean.com/community/tutorials/… - 它详细介绍了允许 memcached 复制的设置。
  • 请注意,似乎是 memcache 扩展,而不是 memcached 扩展将处理复制

标签: php apache session memcached


【解决方案1】:

Memcached 不会将数据复制到每台服务器上。您可以通过添加额外的 memcache 服务器来增加 memcache 存储容量,但它不会复制。如果您想要该功能,您应该查看 repcached。
http://repcached.lab.klab.org/。

【讨论】:

  • 嗯,在很多帖子中,我的印象是,我能够告诉每个服务器同时保存在两个 memcacjes 上
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 2017-11-29
  • 2011-04-24
  • 2021-08-08
  • 2011-12-12
  • 1970-01-01
相关资源
最近更新 更多