Memcached is a Linux daemon which allows programs to set and get data into RAM for fast access. It comes into great benefit when storing cache data.
Installing Memcached
Here is the command to install it along with corresponding PHP extension:
yum install memcached php-pecl-memcached
Start Memcached Service
Since we installed the service via yum, it’s easy to enable it at boot time and immediately start (CentOS 6):
chkconfig memcached on
# service memcached start
By default it listens on port 11211, and there’s no big reason in changing it.
Enable Memcached sessions for PHP-FPM
Edit pool definition file to add support for storing session data in RAM. This greatly reduces database load, in case you’ve been using database for session storage.
# vi /etc/php-fpm.d/www.conf
; php_value[session.save_handler] = files
; php_value[session.save_path] = /var/lib/php/session
php_value[session.save_handler] = memcached
php_value[session.save_path] = "localhost:11211"
# service php-fpm reload
Monitoring
There is a script at Github repository, which you can place at the root of any of your websites and access it via /memcache.php link. Make sure to edit the memcache.php file and update the top configuration related lines first.
Adjusting available RAM for the service
# vi / etc / sysconfig / memcached
PORT = "11211"
USER = "memcached"
MAXCONN = "1024"
CACHESIZE = "64" # change size in MB here
OPTIONS = ""
# service memcached restart
Using it in a web application
WordPress
For WordPress, Memcached is usable in W3 Total Cache and WP-FPC. Using the latter is best in case you don’t have full page cache by other means (i.e. Nginx FastCGI cache). Otherwise, use W3 Total Cache with Memcached.
Joomla
Joomla supports it natively: instructions to enable Memcached in Joomla.
Scaling
It is a distributed system so you can install more of its instances on other servers and easily use all of them from within one application.
P. S. checkout the story behind Memcached
Used materials: [1]