Я настраиваю веб-сайт Django для использования memcached для кеширования его страниц.
(Содержание каждой страницы вообще не будет меняться очень часто, поэтому я надеюсь, что большую часть времени сайт будет обслуживаться из memcached, и, таким образом, сможет достаточно хорошо обрабатывать большой трафик.)
И веб-сайт, и memcached будут работать на одном виртуальном сервере под управлением Debian Squeeze.
Учитывая эту настройку, я подумал, что могу настроить memcached для прослушивания через сокет домена Unix (см. http://code.google.com/p/memcached/wiki/NewConfiguringServer#Unix_Sockets), а не через сетевой интерфейс. Хотя мой виртуальный сервер довольно сильно защищен брандмауэром, поскольку мне нужно, чтобы memcached был доступен только одному локальному пользователю (то есть сайту Django), я полагаю, что мог бы также ограничить его.
Есть ли какие-либо недостатки в прослушивании memcached через сокет домена Unix, когда и memcached, и его клиент находятся на одном сервере? Например. Может ли сокет домена Unix быть медленнее, чем прослушивание 127.0.0.1?
(Приношу извинения за такой вопрос новичка - как вы, наверное, догадались, я раньше не использовал memcached и много не делал с Unix / Linux.)
Обычно вопрос о сокете unix и сетевом порте разбивается следующим образом:
Недостатки сокетов Unix
Доступен только локально
Преимущества сокетов Unix
Устраняет накладные расходы TCP / IP
Сетевые недостатки
Накладные расходы TCP / IP безопасности
Сетевые преимущества
Доступ к сервисам возможен по сети
Я использую это как общее руководство практически для любого сервиса, включая memcached, MySQL и другие сервисы.
Это сильно упрощено, но я начну с этого.
Если вы получаете доступ к memecached только локально, рекомендуется прослушивать только локальный IP-адрес. 127.0.0.1
или используйте сокет unix.
Это хорошая практика, даже если у вас есть защищенная от брандмауэра среда. Изображение, что вы переместили свой сервер из этой сети в другую ненадежную сеть. Итак, вам нужно беспокоиться о защите вашего порта memcached.