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
- memcached : High Performance, Distributed Memory Object Cache.
- memcached-selinux : SELinux policy module supporting memcached.
- perl-Cache-Memcached : Perl client for memcached.
- php-pecl-memcache : Php client / extension to work with the Memcached caching daemon.
- 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:
🐧 15 comments so far... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
Nice article . Thanks :)
How would I go about installing memcache on Debain Lenny for PHP? Would I just use apt-get instead.
Thanks Ben
@Ben,
Yes, and you need to configure memcache file and you are done.
Simply great. It helped me lot.
Using Centos with SELinux enforcing use
setsebool -P httpd_can_network_connect on
cheersss !!!
yiyux
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.
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.
Thanks for the detailed instructions. Now I only wish I could find a way to integrate memcached with Nginx. :)
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.
Working Great!
CentOs 5.8 Final
The download link is dead and the directions wont work for me since I have php53. Need a install tut with php53.
Seems there is one typo:
# set ram size to 2048 – 2GiB
CACHESIZE=”4096″
Should read:
# set ram size to 4096 – 4GiB
~Sanjay
Would be great to install on light speed server…
Thanks ,
Helped alot.
Hi,
How to restart memcached using PHP code?