How to Install and Configure Redis on Linux (CentOS 7, Red Hat or Ubuntu)

Introduction

If you’re looking to install Redis on CentOS 7, Red Hat, or Ubuntu, you’ve come to the right place. Redis, an in-memory data structure store, is often used as a database, cache, and message broker. This guide will walk you through the installation process for Redis version 6.2 on these popular Linux distributions.

Installation on CentOS 7 / Red Hat

Step 1: Update Your System

First, you need to ensure your system packages are up-to-date. Open your terminal and run:

sudo yum update -y

Step 2: Install EPEL Repository

Redis is available in the EPEL (Extra Packages for Enterprise Linux) repository. Install it using:

sudo yum install epel-release -y

Step 3: Install Redis

Now, install Redis with the following command:

sudo yum install redis -y

Step 4: Start and Enable Redis

Once installed, start Redis and enable it to start on boot:

sudo systemctl start redis
sudo systemctl enable redis

Step 5: Verify Redis Installation

To check if Redis is running, use:

sudo systemctl status redis

You should see Redis active and running.

Installation on Ubuntu

Step 1: Update Your System

Begin by updating your package lists:

sudo apt update

Step 2: Install Redis

Install Redis server by running:

sudo apt install redis-server -y

Step 3: Configure Redis

For better performance, you can configure Redis to run as a background daemon. Edit the configuration file:

sudo nano /etc/redis/redis.conf

Find the line supervised no and change it to supervised systemd. Save and exit the editor.

Step 4: Restart Redis

Restart the Redis service to apply the changes:

sudo systemctl restart redis

Step 5: Enable Redis on Boot

Enable Redis to start on boot:

sudo systemctl enable redis

Step 6: Verify Redis Installation

Check if Redis is running correctly:

sudo systemctl status redis

Again, you should see Redis active and running.

Configuring Redis for Optimal Performance

Memory Settings

Configuring Redis to use memory efficiently is crucial. The following are some example configurations based on different server setups:

Example 1: Small Server (2GB RAM, 2 Cores, No MySQL/Apache)

maxmemory 1gb
maxmemory-policy allkeys-lru

This configuration is chosen to ensure Redis doesn’t consume all available memory, leaving enough resources for other processes. The allkeys-lru policy evicts the least recently used keys when memory limit is reached, which is suitable for caching scenarios.

Example 2: Medium Server (8GB RAM, 4 Cores, MySQL/Apache Installed)

maxmemory 4gb
maxmemory-policy volatile-lru

Here, we allocate half of the available memory to Redis, considering that MySQL and Apache are also running. The volatile-lru policy evicts the least recently used keys with an expiration set, balancing between caching and persistence needs.

Example 3: Large Server (32GB RAM, 8 Cores, No MySQL/Apache)

maxmemory 16gb
maxmemory-policy noeviction

For a large server dedicated to Redis, we allocate 50% of the total memory, ensuring high performance. The noeviction policy prevents data loss by not evicting any keys, making this suitable for scenarios where data integrity is critical.

Persistence Options

Redis supports two persistence mechanisms to ensure data durability: RDB snapshots and AOF (Append Only File).

RDB Snapshots

RDB snapshots create point-in-time backups of your dataset at specified intervals. This option is useful for periodic backups and fast restarts but can result in data loss if Redis crashes between snapshots.

Configuration example:

save 900 1
save 300 10
save 60 10000

This configuration saves a snapshot if at least one key changes within 900 seconds, ten keys change within 300 seconds, or 10,000 keys change within 60 seconds.

AOF (Append Only File)

AOF logs every write operation received by the server, providing a more durable but slightly slower option compared to RDB.

Configuration example:

appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec

The appendonly directive enables AOF, appendfilename specifies the AOF file name, and appendfsync everysec ensures the file is synced to disk every second.

Combining RDB and AOF

For optimal durability, you can combine both persistence methods:

save 900 1
save 300 10
save 60 10000
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec

Additional Configuration Options

Besides memory settings and persistence, users can also configure logging and security settings:

  • Logging: Adjust loglevel and logfile to manage logging verbosity and file location.
  • Security: Set requirepass for password protection and bind Redis to specific IP addresses with bind.

Configuration File Example

Edit your redis.conf file to include these settings:

sudo nano /etc/redis/redis.conf

Add the following lines based on your server setup:

maxmemory 4gb
maxmemory-policy volatile-lru
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
requirepass yourpassword
bind 127.0.0.1
save 900 1
save 300 10
save 60 10000

Save and restart Redis to apply changes:

sudo systemctl restart redis

Practical Usage

After installation, you can interact with Redis using its command-line interface. Start the Redis CLI by typing:

redis-cli

You can now run commands like PING to test the connection:

127.0.0.1:6379> PING
PONG

Conclusion

You’ve successfully installed Redis version 6.2 on your CentOS 7, Red Hat, or Ubuntu server. Now, you can start using Redis for your applications. If you have any questions or run into issues, feel free to ask in the comments.

  1. Redis Configuration and Optimization:
    Learn how to fine-tune your Redis setup for performance and security. This involves setting memory limits, enabling persistence, and securing your Redis instance. Redis Configuration
  2. Using Redis as a Cache:
    Understand how to leverage Redis as a caching mechanism to speed up your applications by reducing database load and improving response times. Using Redis as a Cache
  3. Redis Data Types and Commands:
    Dive into the various data types supported by Redis, such as strings, hashes, lists, sets, and sorted sets. Explore the commands associated with each data type. Redis Data Types
  4. Redis Sentinel for High Availability:
    Set up Redis Sentinel to ensure your Redis deployment is highly available, with automatic failover and monitoring capabilities. Redis Sentinel

Feel free to explore these subjects further for a deeper understanding of Redis and its capabilities.

Questions and Answers

Q: How do I check the version of Redis installed?

A: You can check the Redis version by running the following command:

redis-server --version

Q: How can I secure my Redis installation?

A: You can secure Redis by configuring a password in the redis.conf file using the requirepass directive and binding Redis to localhost or a specific IP address.

Q: Can I install Redis on other Linux distributions?

A: Yes, Redis can be installed on various Linux distributions, including Debian, Fedora, and Arch Linux. The installation steps might vary slightly depending on the package manager used.

Q: What are some common uses of Redis?

A: Redis is commonly used for caching, session storage, real-time analytics, message queuing, and as a primary database for applications requiring high-speed data access.

Q: How do I back up my Redis data?

A: Redis can be configured to perform periodic snapshots of your data, which are saved as RDB files. You can also use the BGSAVE command to manually trigger a snapshot.

By following this guide, you should be well on your way to utilizing Redis effectively on your server. Don’t hesitate to explore the related subjects and deepen your knowledge.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>