Redis is an open-source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, HyperLogLogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.
In this guide, we will explain how to install and configure Redis on an Ubuntu 16.04 server.
Deploying your cloud server
If you have not already registered with Cloudwafer, you should begin by getting signed up. Take a moment to create an account after which you can easily deploy your own cloud servers.
Once you have signed up, log into your Cloudwafer Client Area and deploy your Cloudwafer
cloud server.
Updating System Packages
It is always recommended that you update the system to the latest packages before beginning any major installations. This is done with the command below:
sudo apt-get update && sudo apt-get upgrade
It is also you required that you install the software-properties-common
package if it is not presently installed:
sudo apt-get install software-properties-common
Step 1: Add Redis Repository
Next, we need to add a third-party PPA which contains the Redis package. At the prompt, Press [ENTER] to continue.
sudo add-apt-repository ppa:chris-lea/redis-server
Step 2: Update and Install
After adding the PPA, we need to update our system packages before proceeding to install the redis-server using the command below :
sudo apt-get update
sudo apt-get install redis-server
Step 3: Verify the Installation
The next step is to verify that our installation was done successfully with the command below:
redis-cli
- Your prompt will change to
127.0.0.1:6379>
. - Run the command
ping
, which should return aPONG
as shown below
Exit out into the shell again when you are finished:
exit
You can also check that the Redis service is running using the command below:
sudo systemctl status redis
Configuring Redis
Redis provides two options for disk persistence:
- Append-only logs of all the write operations performed by the server (AOF).
- Point-in-time snapshots of the dataset, made at specified intervals (RDB)
You can read more in the official Redis documentation.
For the greatest level of data safety, it is advised that you consider running both persistence methods.
The Point-in-time snapshot persistence is enabled by default, hence we are going to set up only the AOF persistence. Type the command below to edit the redis.conf
file
sudo nano /etc/redis/redis.conf
- Locate
appendonly
and change the default value fromno
toyes
as shown below:
Note: When using nano editor, you can use Ctrl + W
to search for keywords.
- Ensure that
appendfsync
is set toeverysec
as shown below:
Next, restart Redis with the command below:
sudo service redis-server restart
Configuring a Redis Password
You can require clients to issue AUTH
others with access to the host running Redis-server and for security purposes in general.
Note: This should stay commented out for backward compatibility and because most people do not need auth since they run their own servers
To configure a Redis password, we need to open the redis.conf
file using the command below:
sudo nano /etc/redis/redis.conf
Navigate to the SECURITY
section and look for a commented directive that reads:
# requirepass foobared
Uncomment it by removing the #, and change foobared
to a secure password.
After setting the password, save and close the file, then restart Redis:
sudo systemctl restart redis
To check that the password works, access the Redis command line:
redis-cli
The following shows a sequence of commands used to test whether the Redis password works. The first command tries to set a key to a value before authentication:
set key1 30
An error would be returned because you didn’t authenticate.
The next command authenticates with the password specified in the Redis configuration file:
auth your_newly_configured_password
Upon entering the new password correctly, you can try the same process again which would now be successful as shown below: