Install, configure, verify memcached on CentOS
PHP memcache and memcached extensions
Because PHP has no native support for memcache, you must install an extension for PHP to use it. There are two PHP extensions available and it’s important to decode which to use:
memcache(no d), an older but very popular extension that is not maintained regularly. The
memcacheextension currently does not with PHP 7.
The exact name is
php5-memcachefor Ubuntu and
d), a newer and maintained extension that should be compatible with PHP 7.
The exact name is
php5-memcachedfor Ubuntu and
For simplicity, we use the PHP
memcache extension in this guide although we provide examples for both when configuring Magento to use memcache.
Install and configure memcached on CentOS
This section provides instructions to install memcached on CentOS and Ubuntu. For additional information, consult the memcached wiki.
We recommend using the latest stable memcache or memcached version (currently, 3.0.8 for memcache and 2.2.0 for memcached).
To install memcached on CentOS, perform the following tasks as a user with
Install memcached and its dependencies:
yum -y update yum install -y libevent libevent-devel yum install -y memcached yum install -y php-pecl-memcache
The syntax of the preceding commands might depend on what package repositories you use. For example, if you use webtatic and PHP 5.6, enter
yum install -y php56w-pecl-memcache. Use
yum search memcache|grep phpto find the appropriate package name.
Change the memcached configuration setting for
/etc/sysconfig/memcachedin a text editor.
Locate the value for
CACHESIZEand change it to at least 1GB.
- Locate the value for
OPTIONSand change it to
For more information about configuring memcached, see the memcached wiki.
- Save your changes to
memcachedand exit the text editor.
service memcached restart
Restart your web server.
service httpd restart
- Continue with the next section.
Verify memcached works before installing Magento
We recommend testing memcached to make sure it works before you install Magento. Doing so takes only a few minutes and can simplify troubleshooting later.
Verify memcached is recognized by the web server
To verify memcached is recognized by the web server:
phpinfo.phpfile in the web server’s docroot:
<?php // Show all information, defaults to INFO_ALL phpinfo();
Go to that page in your web browser.
Make sure memcache displays as follows:
Verify you’re using memcached version 3.0.5 or later.
If memcache does not display, restart the web server and refresh the browser page. If it still does not display, verify you installed the
Create a memcache test consisting of a MySQL database and PHP script
The test uses a MySQL database, table, and data to verify you can retrieve the database data and store it in memcache. A PHP script first searches the cache. If the result does not exist, the script queries database. After the query has been fulfilled by the original database, the script stores the result in memcache, using the
Create the MySQL database:
mysql -u root -p
mysql prompt, enter the following commands:
create database memcache_test; GRANT ALL ON memcache_test.* TO memcache_test@localhost IDENTIFIED BY 'memcache_test'; use memcache_test; create table example (id int, name varchar(30)); insert into example values (1, "new_data"); exit
cache-test.php in your web server’s docroot:
<memcache host name or ip> is either
127.0.0.1, or the memcache host name or IP address.
<memcache port> is its listen port; by default,
Run the script from the command line.
cd <web server docroot> php cache-test.php
The first result is
got result from mysql. This means that the key didn’t exist in memcache but it was retrieved from MySQL.
The second result is
got result from memcached, which verifies that the value is stored successfully in memcache.
Finally, you can view the memcache keys using Telnet:
telnet localhost <memcache port>
At the prompt, enter
The result is similar to the following:
STAT items:3:number 1 STAT items:3:age 1075 STAT items:3:evicted 0 STAT items:3:evicted_nonzero 0 STAT items:3:evicted_time 0 STAT items:3:outofmemory 0 STAT items:3:tailrepairs 0
Flush the memcache storage and quit Telnet: