How to Install and Configure Memcached on CentOS 8

Memcached is an opensource, high-performance, and superfast in-memory key-value store that is designed for speeding up web applications. Among the popular web applications that rely on Memcached include FaceBook, Reddit, and Twitter.

In this article, you will learn how to install and configure a Memcached caching system on CentOS 8 Linux (same instructions also work on RHEL 8 Linux).

Installing Memcached in CentOS 8

By default, Memcached packages are included in CentOS 8 repositories. With this in mind, we are going to use the default dnf package manager to install Memcached alongside other packages.

$ sudo dnf install memcached libmemcached
Install Memcached in CentOS 8
Install Memcached in CentOS 8

To view detailed information about the Memcached package, run the following rpm command.

$ rpm -qi

The command will display details such as the version, release, architecture type, licensing, and release date of the package as shown below.

View Memcached Information
View Memcached Information

Configuring Memcached in CentOS 8

Now that we are done installing Memcached, we need to configure it so that other applications can interact with it. The configuration of Memcached is located in the /etc/sysconfig/memcached file.

By default, Memcached listens to port 11211 and is configured to listen only to the localhost system as shown in line number 5.

View Memcached Configuration
View Memcached Configuration

To configure Memcached so that applications from the remote systems can connect to the server, you need to change the localhost address 127.0.0.1 to the address of the remote host.

Let’s assume that we are in a private local network. Our Memcached server IP is 192.168.2.101 while the remote client’s IP where the application connecting to Memcached is 192.168.2.105.

We are going to replace the localhost address with the remote client’s IP 192.168.2.105 as shown.

Configure Memcached on CentOS 8
Configure Memcached on CentOS 8

Next, we need to open port 11211 on the firewall to allow traffic from the client host.

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

To confirm that port 11211 is opened on the firewall, execute the command.

$ sudo firewall-cmd --list-ports | grep 11211
Confirm Memcached Port
Confirm Memcached Port

Perfect!, the output confirms that the port is opened. Traffic from the remote client can now access the Memcached server.

Having wound up with the settings and configurations, start and enable Memcached as shown.

$ sudo systemctl start memcached
$ sudo systemctl enable memcached

To verify the status of Memcached, run the command.

$ sudo systemctl status memcached
Verify Memcached Status
Verify Memcached Status

The output is a confirmation that Memcached is up and running.

Enable Memcached for Applications

If you are running a PHP powered application such as Drupal, Magento or WordPress, install the php-pecl-memcache extension for your application to seamlessly communicate with the Memcached server.

$ sudo dnf install php-pecl-memcache

If you are running a Python application, use the pip package installer to install the following Python libraries.

$ pip3 install pymemcache --user
$ pip3 install python-memcached --user

And that’s it. In this guide, you learned how to install Memcached caching system on CentOS 8 server. For more information about Memcached check out the Memcached Wiki.

Two small things before you go

If something didn’t work on your setup, leave a comment and tell me which distro and version you’re on. I read every one, and most of these articles got better because a reader pointed out what was missing.

And if it did work, share it. TecMint has stayed free for 14 years because people pass these articles around, and that traffic is what pays for writing the next one.

Leave a comment
Get two free Linux courses

Learn the Linux basics with two free courses and join 34,000+ readers getting practical TecMint tutorials and selected Pro TecMint articles every week.

Pro TecMint
Get lifetime access for $99

If you want to go beyond the free tutorials, Pro gives you 18 courses, 5 ebooks, and every future course I add. One payment, lifetime access, no renewals.

James Kiarie
James Kiarie
Contributor
About the author

This is James, a certified Linux administrator and a tech enthusiast who loves keeping in touch with emerging trends in the tech world. When I'm not running commands on the terminal, I'm taking listening to some cool music. taking a casual stroll or watching a nice movie.

1 Comment

Leave a Reply
  1. I can start the single instance but I tried starting creating another instance by creating a file as /etc/memcached.11212 and running service memcached@11212 and it shows an error as:

    Started memcached daemon.
    bind(): Permission denied
    bind(): Permission denied
    failed to listen on TCP port 11214: Permission denied
    [email protected]: Main process exited, code=exited, status=71/OSERR
    [email protected]: Failed with result 'exit-code'.
    

    Can you explain how I can start the second instance? I have my firewall off, I have no service running at 11212, etc

    Thanks,
    Sadashiv

    Reply

Got Something to Say? Join the Discussion...

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.