Installing and configuring Memcached

Instructions for installing and configuring the data caching service - Memcached

On a VPS or a dedicated server, installing Memcached helps speed up web applications by storing data in memory. This tool is suitable for both small websites and high-traffic projects on Linux.

Memcached is software that provides a memory-based data caching service using a hash table.

You can install this application with a one-click setup when placing your order. Detailed information is available in the One-Click-Apps section.

Memcached is a server that keeps data in memory with a set expiration time. Data is accessed by key (name). You can think of Memcached as a hash table stored on the server. It is primarily used to cache web pages, database query results, and other data that require fast access.

Installing Memcached on Debian/Ubuntu

First, update the system:

$ sudo apt-get update

Then install Memcached:

$ sudo apt-get install memcached

Install PHP with the required packages:

$ sudo apt-get install php5 php5-dev php-pear php5-memcached

Also, install the MemCache module for PHP:

$ sudo apt-get install libmemcached-dev build-essential

Next, install the Memcache PHP extension via PECL:

$ sudo pecl install memcache

Enable Memcache support in PHP. If the file already exists, skip this step:

$ echo "extension=memcache.so" > /etc/php5/apache2/conf.d/20-memcache.ini

Restart Apache:

$ sudo service apache2 restart

Installing Memcached on CentOS

Update the system:

$ sudo yum update

Install Memcached:

$ sudo yum install memcached

Configuring Memcached

Edit the configuration file:

$ sudo vim /etc/sysconfig/memcached

Make sure it contains the following lines:

PORT="11211"
USER="memcached"
MAXCONN="256"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1"
  • PORT — default listening port for Memcached.
  • USER — the user under which the Memcached daemon runs.
  • MAXCONN — maximum number of connections.
  • CACHESIZE — cache size in megabytes (64 MB is enough for most small to medium sites; for busy servers, increase to 512 MB or 1 GB).
  • OPTIONS="-l 127.0.0.1" — Memcached will listen only on localhost. You can specify the server IP for external connections; by default, INADDR_ANY is used.

Start Memcached:

$ sudo systemctl enable memcached
$ sudo systemctl start memcached

Install PHP extensions for Memcached:

$ sudo yum install php-pear pecl_http php-devel
$ sudo pecl install memcache

If PECL asks Enable memcache session handler support? [yes], simply press ENTER.

Restart services:

If using php-fpm:

$ sudo service php-fpm reload

If using Apache:

$ sudo systemctl restart httpd

Testing Memcached

Check that the service is running:

$ echo "stats settings" | nc localhost 11211

Check the PHP extension by creating a PHP info file:

$ echo "<?php phpinfo(); ?>" > /var/www/html/php_info.php

Configuring the Firewall for Memcached

Add rules to allow connections:

$ sudo iptables -A INPUT -p tcp --destination-port 11211 -m state --state NEW -m iprange --src-range 192.168.1.10-192.168.1.15 -j ACCEPT
$ sudo iptables -A INPUT -p udp --destination-port 11211 -m state --state NEW -m iprange --src-range 192.168.1.10-192.168.1.15 -j ACCEPT

Verify that the Memcached daemon is running:

$ ps -aux | grep memcached
Need help?Our engineers will help you free of charge with any question in minutesContact us