Подключение к Memcached и его использование в веб-проектах

Memcache является программным пакетом, который используется для ускорения работы приложения — Хранение сессий в memcached  является часто применяемым и эффективным решением.

Memcache может работать как на одном с приложением сервере, так и на других серверах — что является более популярным решением.

 

Хранение сессий в memcached

Подключение к Memcache по умолчанию осуществляется по порту 11211.

Чтобы выполнить подключение к серверу на уровне приложения достаточно отредактировать файл php.ini — в него добавляется имя обработчика сессий и путь к нему:

 

session.save_handler = memcache
session.save_path = «tcp://localhost:11211»

memcache localhost

 

Подключение к внешнему серверу Memcache

Под Memcache часто выделяется отдельный сервер — подключение в этом случае осуществляется таким же образом, изменяется только IP-адрес (белый адрес или адрес из локальной сети):

session.save_handler = memcache
session.save_path = «tcp://123.123.123.123:11211»

memcache remote

 

Кластер серверов Memcache

Так выглядит подключение при использовании кластера серверов:

session.save_handler = memcache
session.save_path=»tcp://123.123.123.123:11211, tcp://123.123.123.124:11211"

 

В директиве session.save_path можно передавать параметры, используемые при работе с РНР сессиями:
session.save_path=”tcp://123.123.123.123:11211?persistent=1&weight=1&timeout=1&retry_interval=25″

Хранение сессий в Memcached

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

Т.е. создание кластеров любого размера не представляет никакой сложности, нет необходимости настраивать репликацию и перемещать данные с одного сервера на другой, Memcache поддерживает это изначально.

 

В качестве альтернативы можно использовать Redis. Стоит учитывать, что ни одно из хранилищ не гарантирует сохранности данных в случае сбоев (например, отключения электропитания). Это вызвано тем, что информация хранится в энергозависимой оперативной памяти.

 

Использовать Memcahce и аналоги при этом все равно стоит.

 

Хранение сессий в хранилище на отдельном сервере является необходимым условием построения отказоустойчивой системы для веб проекта.