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


  • 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


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.

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

# 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



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


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.> set pi 3.14159


18. Retrieve the value.> 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

Previous The Body Is The Missing Link For Truly Intelligent Machines
Next How To: Django Web App Setup (CLI Only)