Home Redis How To Install And Configure Redis Server In Ubuntu

How To Install And Configure Redis Server In Ubuntu

By sk
Published: Last Updated on 2.5k views

Redis is an open source, in-memory data structure store used as a database, cache, message broker, and streaming engine. Redis is an acronym that stands for REmote DIctionary Server. It is similar to memcached but the dataset is not volatile and other datatypes (such as lists and sets) are natively supported. Redis comes with redis-cli which provides a simple command-line interface to the Redis server. This tutorial walks you through the steps to install and configure Redis server in Ubuntu. I tested this guide on Ubuntu 18.04 LTS server, however this guide might work on other Ubuntu/Debian-based distros.

Prerequisites

In order for Redis to work efficiently, you must tweak your Ubuntu server with the following settings.

1. First, set the Linux kernel overcommit memory setting to 1. To do so, add vm.overcommit_memory = 1 to /etc/sysctl.conf. Then, reboot or run the command sysctl vm.overcommit_memory=1 to activate the setting. Setting overcommit_memory to 1 tells Linux to relax and perform the fork in a more optimistic allocation fashion, and this is indeed what you want for Redis.

2. Next, ensure the Linux kernel feature Transparent Huge Pages does not impact Redis memory usage and latency. To do so, run this command:

$ echo never > sudo tee -a /sys/kernel/mm/transparent_hugepage/enabled

3. Make sure swap is enabled and that your swap file size is equal to amount of memory on your system. If your Linux system does not have swap set up, and your Redis instance accidentally consumes too much memory, Redis can crash when it is out of memory, or the Linux kernel OOM killer can kill the Redis process. When swapping is enabled, you can detect latency spikes and act on them.

Install Redis Server in Ubuntu

Redis Server is available in the default repositories of Ubuntu. So, you can install it using the apt-get package manager.

Run the following command to install Redis Server on your Ubuntu system:

$ sudo apt-get install redis-server

After installing, check if Redis Server service is start or not with command:

$ sudo systemctl status redis-server

Sample output would be:

● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2018-06-02 12:40:26 IST; 6s ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Main PID: 2623 (redis-server)
Tasks: 4 (limit: 2322)
CGroup: /system.slice/redis-server.service
└─2623 /usr/bin/redis-server 127.0.0.1:6379

Jun 02 12:40:26 ubuntuserver systemd[1]: Starting Advanced key-value store...
Jun 02 12:40:26 ubuntuserver systemd[1]: redis-server.service: Can't open PID file /var/run/red
Jun 02 12:40:26 ubuntuserver systemd[1]: Started Advanced key-value store.

Just in case, if it is not started already, you can start it as shown below.

$ sudo systemctl enable redis-server
$ sudo systemctl start redis-server

To check the installed version of Redis Server, just run:

$ redis-server -v

Sample output:

Redis server v=4.0.9 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=1bc80a08306a3efd

Configure Redis Server

The default configuration file of Redis is /etc/redis/redis.conf. By default Redis listens for connections from all the network interfaces available on the server. It is also possible make it to listen to just one or multiple interfaces using the "bind" configuration directive, followed by one or more IP addresses.

To make Redis server to listen to a particular IP address, edit /etc/redis/redis.conf file:

$ sudo vi /etc/redis/redis.conf

Find the following line:

bind 127.0.0.1

Change it as shown below.

bind 192.168.43.2

To make it listen to multiple IP addresses, then change it like below.

bind 192.168.43.2 192.168.43.3

Replace the IP addresses with your own values. Then, save and close the file.

If you're using UFW firewall, you must allow 6379 port. To do so, run:

$ sudo ufw allow 6379/tcp
$ sudo ufw reload

Restart Redis service to apply the changes.

$ sudo systemctl restart redis-server

Configuring Redis as a cache

If you want to use Redis as a cache where every key will have an expire set, you can use following example configuration (assuming a max memory limit of 2 megabytes as an example):

maxmemory 2mb
maxmemory-policy allkeys-lru

In this configuration, there is no need for the application to set a time to live for keys using the EXPIRE command (or equivalent) since all the keys will be evicted using an approximated LRU algorithm as long as we hit the 2 megabyte memory limit.

Restart the redis service to take effect the changes.

$ sudo systemctl restart redis-server

Test Redis Server

Connect to the Redis Server using redis-cli from command line.

$ redis-cli

Now, you're connected to your Redis server.

127.0.0.1:6379>

From here, you can run Redis commands to test its functionality. Let us see a simple example.

127.0.0.1:6379> set test "Welcome To OSTechNix"
OK
127.0.0.1:6379> get test
"Welcome To OSTechNix"
127.0.0.1:6379>

To quit from Redis command prompt, type exit.

127.0.0.1:6379> exit

To learn more about Redis usage, refer the its official documentation page.

Conclusion

In this guide, we discussed what is Redis server, how to install and configure Redis server in Ubuntu Linux. We also discussed how to configure Redis as a cache and finally we showed you the steps to test if Redis server is working as expected.

Resource:

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This website uses cookies to improve your experience. By using this site, we will assume that you're OK with it. Accept Read More