(PHP) выбрать memcache :: connect или memcache :: pconnect? - PullRequest
4 голосов
/ 13 марта 2009

Я использую модуль php :: memcache для подключения локального сервера memcached (@ 127.0.0.1), но я не знаю, какой из них мне следует использовать, memcache :: connect () или memcache :: pconnect? Использует ли memcache :: pconnect много ресурсов сервера?

Большое спасибо за ваш ответ!

Ответы [ 6 ]

7 голосов
/ 13 марта 2009

Memcached использует TCP-соединение (рукопожатие - 3 дополнительных пакета, закрытие - обычно 4 пакета) и не требует никакой аутентификации . Таким образом, единственным преимуществом использования постоянного соединения является то, что вам не нужно отправлять эти дополнительные 7 пакетов и не нужно беспокоиться о наличии оставшегося порта TIME-WAIT на несколько секунд.

К сожалению, обратная сторона жертвования этими ресурсами намного больше, чем второстепенные. Поэтому я рекомендую не использовать постоянные соединения в memcached.

2 голосов
/ 13 марта 2009

pconnect обозначает постоянное соединение. Это означает, что клиент (в вашем случае сценарий) будет постоянно иметь соединение, открытое к вашему серверу, что, возможно, не является проблемой ресурсов - больше недостаток доступных соединений.

Возможно, вам нужен стандартный connect, если вы не знаете, что вам нужно использовать постоянные соединения.

1 голос
/ 13 марта 2009

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

0 голосов
/ 17 февраля 2011

Недостатком является то, что PHP не получает явной ошибки или предупреждения, если один или все постоянно подключенные memcached демоны исчезают. Это чертовски большой недостаток.

0 голосов
/ 15 марта 2009

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

Я давно играл с memcached и обнаружил, что использование memcache :: getStatus показывает, что количество соединений не увеличивается при использовании pconnect.

Вы можете использовать страницу отладки, которая показывает memcached статистику и попытаться настроить pconnect или connect и посмотреть, что происходит.

0 голосов
/ 13 марта 2009

«Потребляет» TCP-порт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...