我有一个使用 memcache 和后端数据库的 php 应用程序
有时,我们会看到 memcache 中的“当前连接数”很高,但无法确定原因。
为什么 php 会“错过”memcache 并需要转到后端数据库,它是否会保持 mem 缓存连接打开直到数据返回?
我在 memcache 日志中看到“打开的连接太多”。我知道我需要修复后端数据库的一些问题,但我想知道缓慢的数据库是否会导致 memcache 连接保持打开状态。
谢谢
答案1
这取决于您的 Webapp 的设计以及您如何访问 memached。
如果您使用带有 pecl-memcached 的 php,memcache 客户端甚至不知道也不关心数据来自哪里。
您可能正在调用$m->get("keyname")
,我猜您正在从数据库中提取数据,如果调用返回 false,则将其写入 memcache。
在这种情况下,memcache 客户端或服务器如何知道您正在做什么?
所以,简短回答:不,在一般情况下,memcache 不会保持连接打开。