How to Set Up Memcached on Ubuntu VPS

If you’re running a website or app on a Ubuntu VPS, you might notice that things can slow down when many users visit at once. One way to help with this is by using Memcached. It’s a tool that stores data in your server’s memory (RAM) so that it can be accessed quickly, reducing the need to fetch data from the database repeatedly.

In this guide, I’ll walk you through setting up Memcached on your Ubuntu server. I’ll share some tips from my own experience to make the process smoother.


What Is Memcached?

Memcached is a free, open-source caching system. It stores data in RAM, making it faster to retrieve. This is especially useful for dynamic websites that fetch data from a database.

By caching data, Memcached reduces the load on your database and speeds up your website. It’s like having a quick-access memory for your most-used data.


Why Use Memcached?

Here are some reasons why I find Memcached helpful:

  • Speed: It makes data retrieval faster.
  • Efficiency: Reduces database load.
  • Scalability: Handles more users without slowing down.

It’s a simple tool that can make a big difference in performance.


Installing Memcached

Let’s start by installing Memcached on your Ubuntu server.

  1. Update your package list:
    sudo apt update
    

 

  1. Install Memcached and its tools:
    sudo apt install memcached libmemcached-tools
    

 

This will install Memcached and some tools to help manage it.


Starting and Enabling Memcached

After installation, you can start Memcached and enable it to run on boot:

sudo systemctl start memcached
sudo systemctl enable memcached

 

This ensures that Memcached starts now and also automatically starts when the server reboots.


Configuring Memcached

The main configuration file for Memcached is located at /etc/memcached.conf. You can edit it using a text editor like nano:

sudo nano /etc/memcached.conf

 

Here are some settings you might want to adjust:

  • Memory usage: Set the amount of RAM Memcached can use. For example, to use 64MB:

-m 64

:contentReference[oaicite:88]{index=88}

- **Default port**: Memcached listens on port 11211 by default.:contentReference[oaicite:91]{index=91}

-p 11211

:contentReference[oaicite:94]{index=94}

- **Listening IP**: By default, Memcached listens on all IP addresses. To restrict it to localhost:​:contentReference[oaicite:97]{index=97}

-l 127.0.0.1

:contentReference[oaicite:100]{index=100}

- **Maximum connections**: Set the maximum number of simultaneous connections. For example, to allow 1024 connections:​:contentReference[oaicite:103]{index=103}

-c 1024

:contentReference[oaicite:106]{index=106}

:contentReference[oaicite:108]{index=108}:contentReference[oaicite:110]{index=110}

```bash
sudo systemctl restart memcached

 


Testing Memcached

To test if Memcached is working, you can use the telnet command. First, install telnet:

sudo apt install telnet

 

Then, connect to Memcached:

telnet 127.0.0.1 11211

 

You should see a prompt indicating a successful connection. You can then try storing and retrieving data:


set mykey 0 900 4
data
get mykey

 

If everything is working, you’ll see the data you stored.


Securing Memcached

By default, Memcached doesn’t have authentication, which can be a security risk. To secure it, you can enable SASL (Simple Authentication and Security Layer).

  1. Install SASL:
    sudo apt install sasl2-bin
    

 

  1. Create a directory for SASL configuration:
    sudo mkdir /etc/sasl2
    

 

  1. Create a SASL configuration file:
    sudo nano /etc/sasl2/memcached.conf
    

 

Add the following content:

log_level: 5
mech_list: plain
sasldb_path: /etc/sasl2/memcached-sasldb2

 

  1. Create a user for authentication:
    sudo saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 yourusername
    

 

Replace yourusername with your desired username. You’ll be prompted to enter a password.

  1. Set ownership of the SASL database:
    sudo chown memcache:memcache /etc/sasl2/memcached-sasldb2
    

 

  1. Enable SASL in the Memcached configuration:

    Edit /etc/memcached.conf and add the -S option:

    -S
    

 

  1. Restart Memcached:
    sudo systemctl restart memcached
    

 

Now, Memcached requires authentication, adding an extra layer of security.


Connecting Memcached to Your Application

Memcached can be used with various programming languages like PHP, Python, and Java. For example, in PHP, you can install the Memcached extension:

sudo apt install php-memcached

 

Then, in your PHP code, you can connect to Memcached:

$memcache = new Memcached();
$memcache->addServer('127.0.0.1', 11211);
$memcache->set('key', 'value');
echo $memcache->get('key');

 

This will store and retrieve data using Memcached.


Tips for Using Memcached

Here are some tips based on my experience:

  • Monitor usage: Keep an eye on memory usage to ensure it’s not overloading your server.
  • Use consistent keys: Use a consistent naming convention for keys to avoid conflicts.
  • Set expiration times: Set appropriate expiration times for cached data to keep it fresh.

These practices help maintain an efficient caching system.


Conclusion

Setting up Memcached on your Ubuntu VPS can significantly improve your website’s performance by reducing database load and speeding up data retrieval. By following the steps above, you can install, configure, and secure Memcached effectively.

Leave a Reply