≡ Menu

Redhat / CentOS Install Memcached Caching System

How do I install memcached a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load under CentOS / RHEL / Fedora / Redhat Linux?

Memcached is very fast caching system for MySQL. It uses libevent or epoll (Linux runtime) to scale to any number of open connections and uses non-blocking network I/O.

Required Packages

  1. memcached : High Performance, Distributed Memory Object Cache.
  2. memcached-selinux : SELinux policy module supporting memcached.
  3. perl-Cache-Memcached : Perl client for memcached.
  4. php-pecl-memcache : Php client / extension to work with the Memcached caching daemon.
  5. python-memcached : A Python memcached client library.

Step # 1: Turn on EPEL Repo

Type the following command to enable EPEL repo which carries required memcache packages.
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
See this FAQ for further details.

Step # 2: Install memcached

Type the following command to install memcached with php extension:
# yum install memcached php-pecl-memcache memcached-selinux
Sample outputs:

Loaded plugins: downloadonly, rhnplugin, security, verify
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package memcached.x86_64 0:1.2.8-1.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================================
 Package                                Arch                                Version                                   Repository                         Size
==============================================================================================================================================================
Installing:
 memcached                              x86_64                              1.2.8-1.el5                               epel                               60 k

Transaction Summary
==============================================================================================================================================================
Install      1 Package(s)         
Update       0 Package(s)         
Remove       0 Package(s)         

Total download size: 60 k
Is this ok [y/N]: y
Downloading Packages:
memcached-1.2.8-1.el5.x86_64.rpm                                                                                                       |  60 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : memcached                                                                                                                              1/1 

Installed:
  memcached.x86_64 0:1.2.8-1.el5                                                                                                                              

Complete!

Step # 3: Configure memcached

Edit /etc/sysconfig/memcached, enter:
# vi /etc/sysconfig/memcached
Update it as follows:

PORT="11211"
USER="memcached"
# max connection 2048
MAXCONN="2048"
# set ram size to 2048 - 2GiB
CACHESIZE="4096"
# listen to loopback ip 127.0.0.1, for network connection use real ip e.g., 10.0.0.4
OPTIONS="-l 127.0.0.1"

The above will starts memcached up as a daemon, using 4GB of memory, and listening on IP 127.0.0.1, port 11211. Save and close the file.

Step # 4: Run memcached

Type the following command to start memcached, enter:
# chkconfig memcached on
# service memcached start

To stop / restart use the following commands:
# service memcached stop
# service memcached restart

How Do I See Memory Memcached Slabs?

Type the following command:
# memcached-tool IP_ADDRESS:Port
# memcached-tool IP_ADDRESS:Port display
# memcached-tool 127.0.0.1:11211

Sample outputs:

  #  Item_Size   Max_age  1MB_pages Count   Full?
  1     104 B     5134 s       1      10      no
  2     136 B     5135 s       1      40      no
  3     176 B        0 s       1       0      no
  4     224 B     2648 s       1       7      no
  8     552 B     1810 s       1      12      no
  9     696 B     1810 s       1       6      no
 10     872 B     2935 s       1       8      no
 11     1.1 kB    4262 s       1      18      no
 12     1.3 kB    2990 s       1      23      no
 13     1.7 kB    2434 s       1      22      no
 14     2.1 kB    3489 s       1      11      no
 15     2.6 kB    2964 s       1      16      no
 16     3.3 kB    2861 s       1      14      no
 17     4.1 kB    2076 s       1       5      no
 18     5.2 kB    2981 s       1       5      no
 20     8.1 kB      64 s       1       1      no
 21    10.1 kB    1865 s       1       3      no
 29    60.2 kB    1550 s       1       2      no

How Do I See Memory Memcached Stats?

Type the following command:
# memcached-tool IP_Address:Port stats
# memcached-tool 127.0.0.1:11211 stats

Sample outputs:

#127.0.0.1:11211   Field       Value
         accepting_conns           1
                   bytes      399395
              bytes_read      504797
           bytes_written    17313658
               cmd_flush           0
                 cmd_get        1141
                 cmd_set         248
   connection_structures           9
        curr_connections           5
              curr_items         205
               evictions           0
                get_hits         898
              get_misses         243
          limit_maxbytes  1073741824
     listen_disabled_num           0
                     pid       40159
            pointer_size          64
           rusage_system    0.227965
             rusage_user    0.034994
                 threads           5
                    time  1255803547
       total_connections         344
             total_items         259
                  uptime        5829
                 version       1.2.8

Further readings:

Share this tutorial on:

Your support makes a big difference:
I have a small favor to ask. More people are reading the nixCraft. Many of you block advertising which is your right, and advertising revenues are not sufficient to cover my operating costs. So you can see why I need to ask for your help. The nixCraft, takes a lot of my time and hard work to produce. If you use nixCraft, who likes it, helps me with donations:
Become a Supporter →    Make a contribution via Paypal/Bitcoin →   

Don't Miss Any Linux and Unix Tips

Get nixCraft in your inbox. It's free:



{ 15 comments… add one }
  • Vijeesh October 19, 2009, 10:17 am

    Nice article . Thanks :)

  • Ben March 15, 2010, 10:24 am

    How would I go about installing memcache on Debain Lenny for PHP? Would I just use apt-get instead.

    Thanks Ben

  • nixCraft March 15, 2010, 10:53 am

    @Ben,

    Yes, and you need to configure memcache file and you are done.

  • syed April 14, 2010, 5:32 am

    Simply great. It helped me lot.

  • yiyux May 8, 2010, 3:29 am

    Using Centos with SELinux enforcing use
    setsebool -P httpd_can_network_connect on

    cheersss !!!

    yiyux

  • Alkin November 29, 2010, 8:12 am

    I installed and started memcache v 1.4.5 but now i have a problem. Every 20-30 min memcache stopped or crashed and the error is: “memcached dead but subsys locked”.
    I need some expert advice, please.

    • Aniruddha Joshi May 6, 2015, 9:12 am

      I did this and was getting same error as you “memcached dead but subsys locked”. Didn’t know why but i just removed ‘-l’ option and gave just the external ip. The service was started and is working perfectly fine.

  • Pothi Kalimuthu February 2, 2012, 2:07 am

    Thanks for the detailed instructions. Now I only wish I could find a way to integrate memcached with Nginx. :)

  • Jason May 1, 2012, 11:01 pm

    Instructions don’t work if you have php53 installed on RHEL 5.x. Looks like the php-pecl-memcache driver has php-common as a dependency and it conflicts with the already installed php53-common.

  • nadlerz May 4, 2012, 12:49 am

    Working Great!
    CentOs 5.8 Final

  • Justin January 16, 2013, 6:17 am

    The download link is dead and the directions wont work for me since I have php53. Need a install tut with php53.

  • Sanjay K June 14, 2013, 8:33 am

    Seems there is one typo:

    # set ram size to 2048 – 2GiB
    CACHESIZE=”4096″

    Should read:
    # set ram size to 4096 – 4GiB

    ~Sanjay

  • Ray May 6, 2014, 5:42 pm

    Would be great to install on light speed server…

  • Joe February 28, 2015, 7:33 am

    Thanks ,
    Helped alot.

  • Sunil Kumar December 5, 2016, 1:59 pm

    Hi,
    How to restart memcached using PHP code?

Security: Are you a robot or human?

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">


   Tagged with: , , , , , , , , , , , , ,