Skip to content

Redis mit systemd (Ubuntu 16.04 Lts)

Download der Redis-Installation

wget http://download.redis.io/releases/redis-stable.tar.gz && tar xzf redis-stable.tar.gz
sudo apt-get install build-essential //falls gcc fehlt

Installation der ersten Redis-Instanz

cd redis-stable
sudo make install
cd utils
sudo ./install_server.sh //default Einstellungen belassen

Redis-User anlegen

sudo adduser --system --group --no-create-home redis

Redis-Prozess sollte ausgeführt werden

ps ax | grep redis

Version Prüfen

redis-server -v

init.d entfernen

sudo service stop redis_6379
sudo update-rc.d redis_6379 remove

systemd einrichten

Target unit file:

vim /etc/systemd/system/redis.target


[Unit]
Description=Redis target allowing to start/stop all redis@.service instances at once

Service unit file:

sudo vim /etc/systemd/system/redis@.service

[Unit]
Description=Redis
After=network.target
PartOf=redis.target

[Service]
Type=simple
User=redis
Group=redis
PrivateTmp=true

PIDFile=/var/run/redis/%i.pid
ExecStart=/usr/local/bin/redis-server /etc/redis/%i.conf
Restart=on-failure

[Install]
WantedBy=multi-user.target redis.target

Konfiguration

sudo vim /etc/redis/6379.conf

daemonize no
supervised systemd
pidfile /var/run/redis/6379.pid
logfile /var/log/redis/6379.log

sudo mkdir /var/log/redis /var/run/redis
sudo chown redis:redis /var/log/redis /var/run/redis
sudo vim /usr/lib/tmpfiles.d/redis.conf

#Type   Path            Mode    UID     GID
d       /run/redis      0750    redis   redis

Erste Instanz manuell starten

sudo systemctl start redis@6379

Einrichtung der zweiten Redis-Instanz

cp /etc/redis/6379.conf /etc/redis/6380.conf
vim /etc/redis/6380.conf

port 6380
pidfile /var/run/redis/6380.pid
logfile /var/log/redis/6380.log
dir /var/lib/redis/6380

sudo mkdir /var/lib/redis/6380
sudo chown -R redis:redis /var/lib/redis

Instanzen manuell starten

sudo systemctl start redis@6380

Autostart einrichten

sudo systemctl enable redis@6379
sudo systemctl enable redis@6380

Steuerung über Target unit file, alle Instanzen

systemctl start redis.target
systemctl restart redis.target
systemctl stop redis.target

Weitere Instanzen können analog zur zweiten Instanz eingerichtet werden

Published inUbuntu

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

*