![Memcached 错误:服务器已发生故障,已禁用,直至定时重试](https://linux22.com/image/758098/Memcached%20%E9%94%99%E8%AF%AF%EF%BC%9A%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%B7%B2%E5%8F%91%E7%94%9F%E6%95%85%E9%9A%9C%EF%BC%8C%E5%B7%B2%E7%A6%81%E7%94%A8%EF%BC%8C%E7%9B%B4%E8%87%B3%E5%AE%9A%E6%97%B6%E9%87%8D%E8%AF%95.png)
这是我的测试代码:
$host = 'localhost';
$port = '11211';
if (extension_loaded('memcached')) {
$mc = new Memcached;
$mc->addServer($host, $port);
if ($mc->set('test', 'TEST')) {
echo 'true';
} else {
echo $mc->getResultCode();
echo $mc->getResultMessage();
}
} else {
echo 'no_memcached';
}
输出为:
47 服务器已发生故障并被禁用,直至定时重试
SELinux 已禁用,我也尝试在 nginx.conf 中关闭tcp_nodelay
并尝试了不同类型的主机(127.0.0.1 和 localhost)和端口。
我读过这个问题 -如何调试 memcached“服务器已失败且已禁用直至定时重试”错误?
但没有任何帮助,我无法发表评论,因为我的积分不够。
答案1
它无法运行的原因可能有很多种。
就我而言,我意识到 memcached 服务未在 docker 容器中启动。
因此,首先 - 检查 memcached 是否正常工作并检查其日志。尝试连接到 memcached(在默认位置)
telnet localhost 11211
答案2
解决方案很简单。
Memcached 是作为 PHP 模块安装的,而不是作为 Debian 扩展安装的。
要安装它,只需运行两个命令:
sudo apt update
sudo apt install memcached
完成。现在一切正常。