Install Redis on Ubuntu 18.04 Bionic Beaver Linux

Objective

The objective is to Install Redis server or client on Ubuntu 18.04 Bionic Beaver

Operating System and Software Versions

  • Operating System: – Ubuntu 18.04 Bionic Beaver
  • Software: – Redis 4.0.8 or higher

Requirements

Privileged access to your Ubuntu System as root or via sudo command is required.

Difficulty

EASY

Conventions

  • # – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command
  • $ – requires given linux commands to be executed as a regular non-privileged user

Instructions

Install Redis Client on Ubuntu

In case that you only need to connect to a remote Redis server you only need to install redis-cli client on your local Ubuntu host. To do so execute:

$ sudo apt install redis-tools

Once the installation of Redis client is completed you can use redis-cli command to remotely connect to Redis server.

For example the following linux command will connect to Redis server via hostname redis-ubuntu. Optionally suffix the bellow command with -p PORT-NUMBER to connect to a specific Redis server port:

$ redis-cli -h redis-ubuntu 
redis-ubuntu:6379> ping
PONG
redis-ubuntu:6379>

See below on how to configure Redis server to accept remote client connections in case you are getting the error message:

Could not connect to Redis at redis-ubuntu:6379: Connection refused


Install Redis Server on Ubuntu

In this section we will be installing Redis server on Ubuntu 18.04 Linux. The installation is as simple as:

$ sudo apt install redis

Once the Redis server installation is finished you can check the Redis server version:

$ redis-server -v
Redis server v=4.0.8 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=2d97cb0719f78c3e

Furthermore, confirm that Redis server is up and running as expected by checking for its listening socket on port number 6379:

$ ss -nlt
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port
LISTEN      0      128       0.0.0.0:22                    0.0.0.0:*
LISTEN      0      128     127.0.0.1:6379                  0.0.0.0:*
LISTEN      0      128          [::]:22                       [::]:*
LISTEN      0      128         [::1]:6379                     [::]:*

The Redis server will start after reboot. To manipulate this default behavior you can either disable or enable the Redis start after reboot by:

$ sudo systemctl disable redis-server
OR
$ sudo systemctl enable redis-server

By default the Redis server will listen only on a local loop-back interface 127.0.0.1.

If you need to configure your Redis server to listen on all networks you will need to configure its main configuration file /etc/redis/redis.conf:

$ sudo nano /etc/redis/redis.conf

and comment the bind 127.0.0.1 ::1:

FROM:
bind 127.0.0.1 ::1
TO:
# bind 127.0.0.1 ::1

Furthermore, if you wish to connect to your Redis server remotely you need to turn off redis protected mode. While still editing /etc/redis/redis.conf find protected-mode yes line and change it:

FROM:
protected-mode yes
TO:
protected-mode no

Once the configuration is completed restart Redis server:

service redis-server restart


The Redis server should be now listening on socket 0.0.0.0:6379. You can confirm this by executing the ss command:

$ ss -nlt
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port
LISTEN      0      128       0.0.0.0:22                    0.0.0.0:* 
LISTEN      0      128       0.0.0.0:6379                  0.0.0.0:*
LISTEN      0      128          [::]:22                       [::]:*
LISTEN      0      128          [::]:6379                     [::]:*

Lastly, if you have the UFW firewall enabled you can open the Redis’s port 6379 to any TCP incoming traffic by executing the below command:

$ sudo ufw allow from any to any port 6379 proto tcp
Rule added
Rule added (v6)

If you wish to make your firewall rules more strict visit our How to Open/Allow incoming firewall port guide for more information.