Запуск memcache через unix.socket
В файл /etc/memcached.conf
добавляем строчки:
#-s <file> unix socket path to listen on (disables network support)
-s /tmp/memcached.socket
#-a <mask> access mask for unix socket, in octal (default 0700)
-a 0777
Последняя нужна, чтобы пользователь, от которого работает веб-сервер (у меня www-data
), смог прочитать сокет.
Перезапускаем демон мемкеша:
/etc/init.d/memcached restart
Подключаемся к Memcache из PHP-скрипта:
$memcache = new Memcache;
$memcache->connect('unix:///tmp/memcached.socket', 0);
Теперь memcache не должен уступать по производительности tmpfs
или /dev/shm
.
Правда, в этом случае перестают работать сессии в memcached.
То есть следующая конструкция работать не будет:
$session_save_path = 'localhost:11211';
$session_save_path = 'localhost:11211,unix:///tmp/memcached.socket:0';
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', $session_save_path);
Но для сессий лучше всего всё-таки использовать tmpfs.