Memcached is primarily used to speed up sites that make heavy use of databases. It can store objects of any kind. Many programming languages have a Memcached library, including PHP, Perl, Ruby, and Python. Memcached runs in memory and is thus quite speedy since it does not need to write data to disk.

Installing Memcached

Memcached packages are included in the default CentOS 7 repositories. To install open up a terminal and type in the following command

yum install memcached libmemcached

One you are done with the installation, run the memcached services

[root@codesposts ~]# systemctl start memcached
[root@codesposts ~]# systemctl enable memcached
Created symlink from /etc/systemd/system/multi user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.

Now you have a Memcached server running succesfully on a Linux Server

Configuring Memcached

To make assure that installed Memcached service is listening on the 127.0.0.1 local interface, we will alter the OPTIONS variable in the /etc/sysconfig/memcached configuration file. This would protect us from DDoS attacks.

vi /etc/sysconfig/memcached

We will add both the -S and -vv parameters to our OPTIONS variable. The -vv option will provide verbose output to /var/log/memcached, which will help us as we debug. Add these options to the OPTIONS variable as follows:

/etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1 -U 0 -S -vv"

Save and close the file and restart the Memcached service for the changes to take effect

systemctl restart memcached
systemctl enable memcached

To ensure that Memcached is running, type in the following command:

[root@codesposts ~]# memstat --servers="127.0.0.1"
Server: 127.0.0.1 (11211)
         pid: 14054
         uptime: 403
         time: 1562011838
         version: 1.4.15
         libevent: 2.0.21-stable
         pointer_size: 64
         rusage_user: 0.008761
         rusage_system: 0.011682
         curr_connections: 10
         total_connections: 11
         connection_structures: 11
         reserved_fds: 20
         cmd_get: 0
         cmd_set: 0
         cmd_flush: 0
         cmd_touch: 0
         get_hits: 0
         get_misses: 0
         delete_misses: 0
         delete_hits: 0
         incr_misses: 0
         incr_hits: 0
         decr_misses: 0
         decr_hits: 0
         cas_misses: 0
         cas_hits: 0
         cas_badval: 0
         touch_hits: 0
         touch_misses: 0
         auth_cmds: 0
         auth_errors: 0
         bytes_read: 17
         bytes_written: 16
         limit_maxbytes: 67108864
         accepting_conns: 1
         listen_disabled_num: 0
         threads: 4
         conn_yields: 0
         hash_power_level: 16
         hash_bytes: 524288
         hash_is_expanding: 0
         bytes: 0
         curr_items: 0
         total_items: 0
         expired_unfetched: 0
         evicted_unfetched: 0
         evictions: 0
         reclaimed: 0

To check for SASL support

sudo journalctl -u memcached

Make sure that you have allowed access to Memcached server by opening a port 11211 on your firewall using the following command:

firewall-cmd --permanent --zone=public --add-port=11211/tcp