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
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
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











