Как хранить PHP сессии в Memcached

Автор: | 31.05.2016

Memcached — это реально хорошее средство, чтобы снизить нагрузку с вашего сервера и получить более высокую производительность. Настроим PHP для хранения сессий в Memcached, а не в файловой системе.

Зачем хранить сессии РНР в Memcached?

Т.к. оперативная память на много порядков быстрее , чем жесткие диски (HDD) или твердотельные накопители (SSD), лучше кэшировать сессии в оперативной памяти, вместо файловой системы на веб-сервере. Это позволит существенно снизить нагрузку на сервер и повысит его производительность. Есть одно но, если хранить сессии на жестком диске, они могут оставаться там постоянно, а если использовать оперативную  память, то после перезагрузки системы, все сессии будут удалены.

Установка Memcached на Ubuntu

Установка Memcached на CentOS

Установку PHP мы уже сделали, поэтому чтобы настроить хранение всех сессий в Memcached, надо изменить переменные в файле php.ini

  • Для пользователей Ubuntu
sudo nano /etc/php5/apache2/php.ini
  • Для пользователей CentOS
sudo nano /etc/php.ini

Находим следующие переменные:

session.save_handler
session.save_path

Заменяем значения на следующие:

session.save_handler = memcached
session.save_path = «127.0.0.1:11211»

Если Memcached установлен на другом сервере, а не на localhost  (пример 192.168.0.10):

session.save_handler = memcached
session.save_path = «tcp://192.168.0.10:11211»

Если использовать несколько Memcached серверов (пример 192,.168.0.10, 192.168.0.20 и т.д.):

session.save_handler = memcached
session.save_path = «tcp://192.1680.10:11211, tcp://192.168.0.20:11211»

Так же есть возможность передавать параметры при конфигурации сессий:

session.save_handler = memcached
session.save_path=”tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15″

Для применения изменений, надо перезапустить сервис Apache:

  • Для пользователей Ubuntu
sudo service apache2 restart
  • Для пользователей CentOS
service httpd restart

Если вы используете PHP-FRM:

  • Для пользователей Ubuntu
sudo service php5-fpm restart
  • Для пользователей CentOS
service php-fpm restart