“Redis
is an in-memory key-value store known for its flexibility,
performance, and wide language support” Inorder
to install redis on your machine you need ubuntu 16.4 and a non-root
user with
Download and Extract the Source Code
Build and Install Redis
Now that Redis is installed, we can begin to configure it.
Create the Redis User, Group and Directories
Start the Redis Service
sudo
privileges
to perform the administrative functions required for this process.Download and Extract the Source Code
-
Create
a tmp directory
cd /tmp
-
Download
the latest stable version of Redis
curl -O http://download.redis.io/redis-stable.tar.gz
- untar
tar xzvf redis-stable.tar.gz
- Move
into the Redis source directory structure that was just extracted
cd redis-stable
Build and Install Redis
-
Now,
we can compile the Redis binaries by typing
make
- After
the binaries are compiled, run the test suite to make sure
everything was built correctly. You can do this by typing:
make test
- This
will typically take a few minutes to run. Once it is complete, you
can install the binaries onto the system by typing:
sudo make install
Now that Redis is installed, we can begin to configure it.
-
To
start off, we need to create a configuration directory. We will use
the conventional ‘
/etc/redisdirectory’ which can be created by typing
-
Now,
copy over the sample Redis configuration file included in the Redis
source archive:
- Next, we can open the file to adjust a few items in the configuration
sudo
cp /tmp/redis-stable/redis.conf /etc/redis-
In
the file, find the
superviseddirective. Currently, this is set tono. Since we are running an operating system that uses the systemd init system, we can change this tosystemd
/etc/redis/redis.conf
.
. .#
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.
. .-
Next,
find the
dirdirectory. This option specifies the directory that Redis will use to dump persistent data. We need to pick a location that Redis will have write permission and that isn't viewable by normal users.
-
We
will use the
/var/lib/redisdirectory for this, which we will create in a moment:
/etc/redis/redis.conf
.
. .#
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.
. .-
Save
and close the file when you are finished.
-
Next,
we can create a systemd unit file so that the init system can manage
the Redis process. Create and open the
/etc/systemd/system/redis.servicefile to get started:
sudo nano /etc/systemd/system/redis.service
-
Inside,
we can begin the
[Unit]section by adding a description and defining a requirement that networking be available before starting this service
-
In
the
[Service]section, we need to specify the service's behavior. For security purposes, we should not run our service asroot. We should use a dedicated user and group, which we will callredisfor simplicity. We will create these momentarily.
-
To
start the service, we just need to call the
redis-serverbinary, pointed at our configuration. To stop it, we can use the Redisshutdowncommand, which can be executed with theredis-clibinary. Also, since we want Redis to recover from failures when possible, we will set theRestartdirective to "always"
-
Finally,
in the
[Install]section, we can define the systemd target that the service should attach to if enabled (configured to start at boot):
/etc/systemd/system/redis.service
[Unit]Description=Redis
In-Memory Data StoreAfter=network.target[Service]User=redisGroup=redisExecStart=/usr/local/bin/redis-server
/etc/redis/redis.confExecStop=/usr/local/bin/redis-cli
shutdownRestart=always[Install]WantedBy=multi-user.target-
Save
and close the file when you are finished.
Create the Redis User, Group and Directories
-
Now,
we just have to create the user, group, and directory that we
referenced in the previous two files.Begin by creating the
redisuser and group. This can be done in a single command by typing:
sudo
adduser --system --group --no-create-home redis-
Now,
we can create the
/var/lib/redisdirectory by typing:
sudo
mkdir /var/lib/redis-
We
should give the
redisuser and group ownership over this directory:
sudo
chown redis:redis /var/lib/redis-
Adjust
the permissions so that regular users cannot access this location:
sudo
chmod 770 /var/lib/redis
Start the Redis Service
-
Start
up the systemd service by typing:
sudo systemctl start redis
-
Check
that the service had no errors by running:
sudo systemctl status redis
Test
the Redis Instance Functionality
-
To
test that your service is functioning correctly, connect to the
Redis server with the command-line client:
redis-cli
-
In
the prompt that follows, test connectivity by typing:
ping
You should see:
Output
PONG
Comments
Post a Comment