数据库速度慢是否会导致 Web 应用程序阻塞 Memcache 连接?

数据库速度慢是否会导致 Web 应用程序阻塞 Memcache 连接?

我有一个使用 memcache 和后端数据库的 php 应用程序

有时,我们会看到 memcache 中的“当前连接数”很高,但无法确定原因。

为什么 php 会“错过”memcache 并需要转到后端数据库,它是否会保持 mem 缓存连接打开直到数据返回?

我在 memcache 日志中看到“打开的连接太多”。我知道我需要修复后端数据库的一些问题,但我想知道缓慢的数据库是否会导致 memcache 连接保持打开状态。

谢谢

答案1

这取决于您的 Webapp 的设计以及您如何访问 memached。

如果您使用带有 pecl-memcached 的 php,memcache 客户端甚至不知道也不关心数据来自哪里。
您可能正在调用$m->get("keyname"),我猜您正在从数据库中提取数据,如果调用返回 false,则将其写入 memcache。
在这种情况下,memcache 客户端或服务器如何知道您正在做什么?

所以,简短回答:不,在一般情况下,memcache 不会保持连接打开。

相关内容