Redhat / CentOS Install Memcached Caching System

by on October 19, 2009 · 12 comments· LAST UPDATED October 19, 2009

in , ,

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:

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 12 comments… read them below or add one }

1 Vijeesh October 19, 2009 at 10:17 am

Nice article . Thanks :)

Reply

2 Ben March 15, 2010 at 10:24 am

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

Thanks Ben

Reply

3 nixCraft March 15, 2010 at 10:53 am

@Ben,

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

Reply

4 syed April 14, 2010 at 5:32 am

Simply great. It helped me lot.

Reply

5 yiyux May 8, 2010 at 3:29 am

Using Centos with SELinux enforcing use
setsebool -P httpd_can_network_connect on

cheersss !!!

yiyux

Reply

6 Alkin November 29, 2010 at 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.

Reply

7 Pothi Kalimuthu February 2, 2012 at 2:07 am

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

Reply

8 Jason May 1, 2012 at 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.

Reply

9 nadlerz May 4, 2012 at 12:49 am

Working Great!
CentOs 5.8 Final

Reply

10 Justin January 16, 2013 at 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.

Reply

11 Sanjay K June 14, 2013 at 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

Reply

12 Ray May 6, 2014 at 5:42 pm

Would be great to install on light speed server…

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , ,

Previous Faq:

Next Faq: