Template systemd pour instances Redis
This commit is contained in:
parent
62980a5edf
commit
6d32348ae6
|
@ -132,10 +132,79 @@ session.save_path = "tcp://127.0.0.1:6379?auth=<password>"
|
||||||
|
|
||||||
## Instances Redis
|
## Instances Redis
|
||||||
|
|
||||||
Il peut être pratique de lancer plusieurs instances Redis sur un même serveur.
|
Il est possible de faire fonctionner plusieurs instances de Redis sur un serveur ; chacune avec ses propres données, sa propre configuration et son propre utilisateur.
|
||||||
|
|
||||||
Pour cela on copiera le fichier _redis.conf_ en ajustant les directives _pidfile_, _port_, _unixsocket_, _logfile_ et _dbfilename_.
|
### Template systemd
|
||||||
Il faudrait ensuite copier le script d'init.d en ajustant les variables RUNDIR, PIDFILE, DAEMON_ARGS et DESC
|
|
||||||
|
Creer le template d'unité systemd suivant dans /etc/systemd/system/redis@.service :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
[Unit]
|
||||||
|
Description=Advanced key-value store
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStartPre=/bin/mkdir -m 0755 -p /run/redis/%i
|
||||||
|
ExecStartPre=/bin/chown redis-%i: /run/redis/%i
|
||||||
|
PermissionsStartOnly=yes
|
||||||
|
|
||||||
|
Type=forking
|
||||||
|
PIDFile=/run/redis/%i/redis.pid
|
||||||
|
ExecStart=/usr/bin/redis-server /etc/redis/redis-%i.conf --unixsocket /run/redis/%i/redis.sock --pidfile /run/redis/%i/redis.pid
|
||||||
|
ExecStop=/usr/bin/redis-cli -s /run/redis/%i/redis.sock shutdown
|
||||||
|
Restart=always
|
||||||
|
User=redis-%i
|
||||||
|
Group=redis-%i
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
~~~
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
|
Créer un utilisateur système pour l’instance :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
useradd --system redis-instance1
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Créer ensuite le *datadir* et le dossier de log :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
mkdir -m 0750 -p /var/lib/redis/instance1 /var/log/redis/instance1
|
||||||
|
chown redis-instance1: /var/lib/redis/instance1 /var/log/redis/instance1
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Créer ensuite le fichier de configuration suivant dans /etc/redis/redis-instance1.conf :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
daemonize yes
|
||||||
|
port 0 # Listen only on unix socket defined by systemd unit
|
||||||
|
unixsocketperm 770 # Unix socket only accessible by user and group of instance1
|
||||||
|
timeout 300
|
||||||
|
loglevel notice
|
||||||
|
logfile /var/log/redis/instance1/redis-server.log
|
||||||
|
databases 16
|
||||||
|
save 900 1
|
||||||
|
save 300 10
|
||||||
|
save 60 10000
|
||||||
|
dbfilename dump.rdb
|
||||||
|
dir /var/lib/redis/instance1
|
||||||
|
#requirepass <password>
|
||||||
|
maxclients 128
|
||||||
|
maxmemory 104857600
|
||||||
|
~~~
|
||||||
|
|
||||||
|
### Administration
|
||||||
|
|
||||||
|
L'instance Redis "instance1" est maintenant administrable via :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
systemctl start redis@instance1
|
||||||
|
systemctl stop redis@instance1
|
||||||
|
systemctl restart redis@instance1
|
||||||
|
systemctl status redis@instance1
|
||||||
|
~~~
|
||||||
|
|
||||||
## Sauvegardes
|
## Sauvegardes
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue