Memcached 错误:服务器已发生故障,已禁用,直至定时重试

Memcached 错误:服务器已发生故障,已禁用,直至定时重试

这是我的测试代码:

$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

完成。现在一切正常。

相关内容