Intelligence, Inside and Outside.

How To Install And Configure Redis In Ubuntu

Overview

  • An In-Memory data structure store
  • Can be used for caching
  • Supports strings, hashes, lists, sets, sorted sets and other data structures.

Prerequisites

  • Operating System: Ubuntu 18
  • Command Line Interface or Terminal

Installation via Tarball

Installing via tarball is recommended as it is compiled from source.

01. Open a terminal window

 

02. Install build-essential, which will be used for building redis from source

$ sudo apt update
$ sudo apt install -y build-essential

 

Install also tcl.

$ sudo apt-get install -y tcl

 

03. Download the stable version of redis

$ wget http://download.redis.io/redis-stable.tar.gz

 

04. Unpack and build redis

$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ sudo make

Wait until the make command finish, this might take some time.

 

Then run make install

$ sudo make install

 

05. As hinted by redis, it is a good idea to run the make test command.


$ sudo make test

This will also take some time.

06. Create the directories.


$ sudo mkdir /etc/redis

$ sudo mkdir /var/lib/redis

$ sudo mkdir /var/log/redis

 

07. Copy the template configuration file you’ll find in the root directory of the Redis distribution into /etc/redis/

$ sudo cp redis.conf /etc/redis/redis.conf

 

08. Edit the redis configuration file and apply the following.

daemonize yes
pidfile /var/run/redis-server.pid
logfile /var/log/redis/redis-server.log
dir /var/lib/redis

 

$ sudo nano /etc/redis/redis.conf

 

Update the following

...

# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes

...

# If a pid file is specified, Redis writes it where specified at startup
# and removes it at exit.
#
# When the server runs non daemonized, no pid file is created if none is
# specified in the configuration. When the server is daemonized, the pid file
# is used even if not specified, defaulting to "/var/run/redis.pid".
#
# Creating a pid file is best effort: if Redis is not able to create it
# nothing bad happens, the server will start and run normally.
pidfile /var/run/redis-server.pid

...

# Specify the log file name. Also the empty string can be used to force
# Redis to log on the standard output. Note that if you use standard
# output for logging but daemonize, logs will be sent to /dev/null
logfile /var/log/redis/redis-server.log

...

# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /var/lib/redis

 

Read More  Key Requirements For An MLOps Foundation

09. Copy the init script that you’ll find in the Redis distribution under the utils directory into /etc/init.d


$ sudo cp utils/redis_init_script /etc/init.d/redis-server

 

10. Edit the init script and apply the following.

If you changed the port in /etc/redis/redis.conf to a port other than 6379. Update the init script by setting the REDISPORT value to the same port you have set in redis configuration.


$ sudo nano /etc/init.d/redis-server

 

Update the config as follows.  This setup is for running a single instance of redis, and adding a custom restart command, which just calls the stop and start as a convenience method.

#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

### BEGIN INIT INFO
# Provides:     redis-server
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Redis data structure server
# Description:          Redis data structure server. See https://redis.io
### END INIT INFO

REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis-server.pid
CONF="/etc/redis/redis.conf"

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    status)
        PID=$(cat $PIDFILE)
        if [ ! -x /proc/${PID} ]
        then
            echo 'Redis is not running'
        else
            echo "Redis is running ($PID)"
        fi
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

 

Read More  Firecell And Canonical To Demonstrate 5G Private Mobile Network (PMN) Solution Running On Ubuntu At MWC Barcelona

11. Add the new Redis init script to all the default runlevels.


$ sudo update-rc.d redis-server defaults

 

 

12. Configure redis server to start on system boot


$ sudo update-rc.d redis-server enable

 

 

13. Restart the server redis-server


$ sudo service redis-server restart

 

14. Test Redis by running the following command. It should return a PONG.


$ redis-cli PING

 

15. Exit from the redis-cli


$ exit

 

16. Test Redis functionality by performing simple operations. Access the redis CLI


$ redis-cli

 

17. Add new key-value pairs. An OK message should be returned.

 
127.0.0.1:6379> set pi 3.14159

 

18. Retrieve the value.

 
127.0.0.1:6379> get pi 

 

 

Installation by Package Manager

If via Package Manager, the version of Redis may be outdated.

01. In the command line

$ sudo apt update
$ sudo apt install -y redis-server

 

02. Test Redis by running the following command. It should return a PONG.

$ redis-cli PING


For enquiries, product placements, sponsorships, and collaborations, connect with us at [email protected]. We'd love to hear from you!
Share this article
Shareable URL
Prev Post

The Body Is The Missing Link For Truly Intelligent Machines

Next Post

How To: Django Web App Setup (CLI Only)

Read next

How To Install TensorFlow

Overview This guide shows how to install and verify TensorFlow. TensorFlow is an end-to-end open source platform…