У меня есть приложение php, которое использует memcache и внутреннюю базу данных
Иногда мы видим высокие «текущие соединения» в кэше памяти и не можем определить почему.
Почему php «промахивается» из кэша памяти и должен обращаться к базе данных бэкенда, сохраняет ли он соединение с кэшем памяти открытым до тех пор, пока данные не будут возвращены?
Я вижу «Слишком много открытых подключений» в моем журнале кэша памяти. Я знаю, что мне нужно исправить некоторые вещи с моей серверной БД, но мне интересно, не приведет ли медленная БД к тому, чтобы соединения memcache оставались открытыми.
Спасибо
Это зависит от дизайна вашего веб-приложения и от того, как вы получаете доступ к memached.
Если вы используете php с pecl-memcached, клиент memcache даже не знает и не заботится о том, откуда берутся данные.
Вы, наверное, делаете $m->get("keyname")
call, я полагаю, вы извлекаете данные из базы данных и записываете их в memcache, если вызов возвращает false.
В этом случае как клиент или сервер memcache вообще узнает, что вы делаете?
Так, Короткий ответ: Нет, в обычных условиях кэш памяти не поддерживает соединения открытыми.