Memcached — программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе парадигмы хеш-таблицы.
Иными словами, Memcached это хранилище объектов (строчек, сессий, статических данных) в оперативной памяти сервера используя алгоритм ключ-значение (key-value) основываясь на запросах сервера к базе данных, API, или рендереринга страниц. Т.е. Memcached хранит наиболее популярные запросы к базе данных в оперативной памяти и когда сервер обращается за этими запросами, Memcached их быстро выдает, тем самым не задействуя базу данных, и экономя время ответа сервера, так как запрос к базе данных это дело долгое и муторное, к тому же многие сервера до сих пор используют HDD, а не SSD что очень замедляет работу.
Установка Memcached в Centos
Почему стоит хранить PHP сессию в Memcached, а не в файлах? Ответ прост, потому что обращения к файлам на жестком диске на порядок медленне, чем обращение к оперативной памяти. Но стоит помнить, что вся информация, которую закеширует Memcached будет хранится в памяти до первого ребута.
Для установки Memcached нужно не забыть подключить EPEL репозиторий.
rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm yum update
Теперь когда репозиторий подключ в систему, можно ставить пакет Memcached:
yum install memcached
После установки, необходимо выполнить минимальную конфигурацию:
vi /etc/sysconfig/memcached PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS=""
Где меняем строчку OPTIONS=»»:
OPTIONS="-l 127.0.0.1"
Запускаем:
/etc/init.d/memcached start chkconfig --levels 235 memcached on
Устанавлиаем Memcached PHP Extension
Ставим Инструменты разработчика и Extension:
yum groupinstall "Development Tools" yum install zlib-devel libmemcached-devel php-pear php-pecl-memcached php-devel
Далее с помощью Pecl ставим модуль:
pecl install -f memcached-1.0.0
Настройка PHP.ini для работы с Memcached
Открываем php.ini:
vi /etc/php.ini
В php.ini ищем раздел [Session] и делаем его таким:
[Session] ; Handler used to store/retrieve data. ; http://www.php.net/manual/en/session.configuration.php#ini.session.save-handler session.save_handler = memcached session.save_path = "127.0.0.1:11211"
Рестаруем Apache:
service httpd restart
Установка phpMemcachedAdmin на сервер:
Делаем папку куда будет смотреть виртуальны хост:
mkdir -p /var/www/html/memcached/ cd /var/www/html/memcached/
Качаем пакет:
http://blog.elijaa.org/index.php?pages/phpMemcachedAdmin-Download-Version-1.2.2 tar -xvzf phpMemcachedAdmin-1.2.2-r262.tar.gz chmod +rx * chmod 0777 Config/Memcache.php chmod 0777 Temp/
Создаем файл VHOST и настраиваем:
vim /etc/httpd/conf.d/memcached.conf Alias /memcache /var/www/html/memcached <directory /var/www/html/memcached> Options -Indexes AllowOverride All </directory>
Рестаруем Apache:
service httpd restart
И идем по адресу http://younameserver/memcache
Что-бы WordPress заработал с memcached, необходимо установить специальный плагин.