memcached 和 PHP ...会话严重滞后

memcached 和 PHP ...会话严重滞后

我正在使用 Unbuntu 10.04 构建的新服务器,运行 php-fastcgi、nginx 和 memcached。

phpinfo() 脚本加载并运行良好,与测试 memcached 脚本相同。对于任何使用会话的脚本,页面加载时间都会急剧增加。

--- memcached.ini ---
extension=memcached.so
memcache.hash_strategy = "consistent"
memcache.max_failover_attempts = 100
memcache.allow_failover = 1
session.save_handler = memcached
session.save_path = "tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

如果您需要查看任何其他配置,请告诉我。

答案1

问题出在 memcache.so 和 memcached.so 之间的 session.save_path 语法中:

extension=memcache.so
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"

对阵

extension=memcached.so
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"

请注意 memcache 中的协议,memcached 中没有协议。

另外,请确保您确实拥有要加载的 .so。它们是通过 apt-get 或 yum 或您使用的任何版本加载的两个独立软件包。

由于加载错误的模块或使用不正确的语法而导致的任何损坏都会导致 php 在尝试使用会话机制时出现 30 秒的加载延迟并最终超时。

希望这可以为某些人节省一些时间。;-)

答案2

php 的 memcached 不是 php 的 memcache!它们是独立的实现。

简单的 'session.save_path = "127.0.0.1:11211"' 能给你带来什么?或者

session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

请注意 save_handler 中缺少“d”。

答案3

将 PHP 扩展从 memcached.so 更改为 memcache.so。这解决了所有延迟问题。不确定这是 Ubuntu 错误还是我的设置错误,但现在运行良好。

相关内容