Redis is an open source, in-memory data structure store, used as a database, cache and message broker. It is known for its flexibility, performance, and wide language support. That is why it is commonly used as a message broker for celery. Here, I will show how to install Redis on an Ubuntu.
Open the terminal and install build-essential and tcl packages using apt:
sudo apt-get install build-essential tcl
Download the redis.tar.gz file from https://redis.io/download and extract it in any directory. Open the terminal in that directory and run the following commands to build and install Redis:
make make test sudo make install
Create a Redis configuration directory:
sudo mkdir /etc/redis sudo cp <redis_directory>/redis.conf /etc/redis sudo vim /etc/redis/redis.conf
Find the "supervised" directive which is currently set to "no". Change this to "systemd":
..... # If you run Redis from upstart or systemd, Redis can interact with your # supervision tree. Options: # supervised no - no supervision interaction # supervised upstart - signal upstart by putting Redis into SIGSTOP mode # supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET # supervised auto - detect upstart or systemd method based on # UPSTART_JOB or NOTIFY_SOCKET environment variables # Note: these supervision methods only signal "process is ready." # They do not enable continuous liveness pings back to your supervisor. supervised systemd .....
Find the dir directory and set this to "/var/lib/redis". Redis will use this directory to dump data.
..... # 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 .....
Create a systemd unit file so that the init system can manage the Redis process.
sudo touch /etc/systemd/system/redis.service sudo nano /etc/systemd/system/redis.service
Write the following lines in redis.service file:
[Unit] Description=Redis In-Memory Data Store After=network.target [Service] User=redis Group=redis ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf ExecStop=/usr/local/bin/redis-cli shutdown Restart=always [Install] WantedBy=multi-user.target
Create a Redis user and group:
sudo adduser --system --group --no-create-home redis
Create the /var/lib/redis directory by typing:
sudo mkdir /var/lib/redis
Change ownership and permissions of this directory:
sudo chown redis:redis /var/lib/redis sudo chmod 770 /var/lib/redis
Start up the Redis systemd service by typing:
sudo systemctl start redis
Redis service will start by now. Check Redis status using the following command:
sudo systemctl status redis
Now, we would like to start Redis automatically when the server boots. To do so, type:
sudo systemctl enable redis