“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/redis
directory’ 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
supervised
directive. 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
dir
-
We
will use the
/var/lib/redis
/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.service
file 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 callredis
for simplicity. We will create these momentarily.
-
To
start the service, we just need to call the
redis-server
binary, pointed at our configuration. To stop it, we can use the Redisshutdown
command, which can be executed with theredis-cli
binary. Also, since we want Redis to recover from failures when possible, we will set theRestart
directive 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 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
-
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
redis
user 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/redis
directory by typing:
sudo
mkdir /var/lib/redis
-
We
should give the
redis
user 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