Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode

Запуск memcache через unix.socket

Запуск 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.