Постоянные подключения к memcached в PHP - PullRequest
5 голосов
/ 12 июня 2009

В нашем текущем использовании memcached мы сталкиваемся с проблемами на сервере с большим объемом, потому что так много времени уходит на настройку и разрыв соединений с нашим сервером memcache. Поможет ли использование постоянных подключений к memcached облегчить эту проблему?

Кроме того, каков предпочтительный способ подключения и использования постоянных соединений memcahced? Я думал об установке переменной "pool_size", затем случайном выборе из 1-$POOL_SIZE и использовании этого соединения

$mem = new Memcached(rand(1, $pool_size));

Либо я смотрю не в том месте, либо там не так много информации.

Ответы [ 3 ]

3 голосов
/ 29 июля 2010

И pecl / memcache, и pecl / memcached поддерживают постоянные соединения для каждого процесса. Однако в настоящее время ошибка существует в pecl / memcached.

1 голос
/ 29 июля 2010

Я прочитал, что функция постоянных соединений не работает в расширении PHP memcached.

Первое: «постоянное» соединение не разрушается. (Это нормально.)

Второе: когда вы пытаетесь использовать его снова, он создает новый! (Это плохо!)

Результат: утечки памяти, все более интенсивное использование всей доступной оперативной памяти.

Проверьте здесь: http://brian.moonspot.net/php-memcached-issues

Как я уже сказал, я сам этого не испытал - я просто прочитал эту информацию в связанной статье.

1 голос
/ 12 июня 2009

Клиент php не обрабатывает постоянные соединения. Вам либо нужно использовать идею пула, либо использовать сторонний memcached клиент для php, который поддерживает постоянные соединения.

как этот:

http://github.com/andreiz/php-memcached/tree/master

...