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
|
||||
|
||||
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_.
|
||||
Il faudrait ensuite copier le script d'init.d en ajustant les variables RUNDIR, PIDFILE, DAEMON_ARGS et DESC
|
||||
### Template systemd
|
||||
|
||||
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
|
||||
|
||||
|
|
Loading…
Reference in a new issue