dernière relecture

This commit is contained in:
gcolpart 2017-10-01 23:57:10 +02:00
parent f337e9bfaa
commit 4d92b87aba

View file

@ -6,21 +6,14 @@ title: Howto Redis
* Documentation : <https://redis.io/documentation>
* Rôle Ansible : <https://forge.evolix.org/projects/ansible-roles/repository/show/redis>
[Redis](https://redis.io/) est un serveur noSQL clé-valeur. Une valeur peut être une chaîne de caractères, un tableau, une liste, etc.
Redis tourne en mémoire, et sauvegarde de temps en temps ses données sur le disque.
[Redis](https://redis.io/) est un serveur noSQL clé-valeur très stable (écrit en 2009). Une valeur peut être une chaîne de caractères, un tableau, une liste, etc. Redis tourne en mémoire, et si besoin sauvegarde de temps en temps ses données sur le disque.
## Installation
~~~
# apt install redis-server redis-tools
~~~
*Sous Debian Stretch*, la version de Redis est 3.2.6 :
~~~
$ /usr/bin/redis-server -v
Redis server v=3.2.6 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=826601c992442478
@ -37,7 +30,7 @@ Redis server v=3.2.6 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=826601c9
~~~
*Sous Debian Jessie*, la version de Redis est 2.8.17 :
Sous Debian Jessie, la version de Redis est 2.8.17 :
~~~
$ /usr/bin/redis-server -v
@ -50,7 +43,6 @@ Redis server v=2.8.17 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=4c1d571
Main PID: 4245 (redis-server)
CGroup: /system.slice/redis-server.service
└─4245 /usr/bin/redis-server 127.0.0.1:6379
~~~
@ -101,6 +93,7 @@ redis> CONFIG get *
10) "0"
~~~
## Utilisation
En mode CLI :
@ -164,9 +157,9 @@ $ git-buildpackage -us -uc
~~~
## Sessions PHP avec Redis
### Sessions PHP avec Redis
Redis peut notamment être utilisé pour stocker les sessions PHP. Par exemple :
Redis peut notamment être utilisé pour stocker les sessions [PHP](HowtoPHP). Par exemple :
~~~
session.save_handler = redis
@ -180,7 +173,7 @@ Il est possible de faire fonctionner plusieurs instances de Redis sur un serveur
### Template systemd
Créer le template d'unité systemd suivant dans `/etc/systemd/system/redis@.service` :
Créer le template d'unité [systemd](HowtoSystemd) suivant dans `/etc/systemd/system/redis@.service` :
~~~
[Unit]
@ -275,7 +268,7 @@ Il suffit donc de copier le fichier */var/lib/redis/dump.rdb* pour sauvegarder u
Pour restaurer les données, il suffira d'éteindre Redis, remettre en place le fichier RDB, et relancer Redis.
## Réplication
## Réplication interne
<http://redis.io/topics/replication>
@ -330,7 +323,8 @@ Depuis redis 2.6 (2.4 en Wheezy), par défaut, le slave est en read-only, on peu
slave-read-only off
~~~
### Sentinel
## Réplication avec Sentinel
Sentinel permet surveiller un ensemble d'instance avec réplication. Il repose sur plusieurs processus qui communiquent entre eux afin d'aboutir à un consensus sur l'état des réplications et l'élection d'un master. C'ets un processus séparé de Redis lui-même.
@ -338,7 +332,7 @@ Par exemple, une instance _master_ "redis1" et un _slave_ "redis2". En cas de pa
Un seul ensemble de processus Sentinel peut surveiller un ou plusieurs ensemble de réplications Redis.
#### Unité systemd
### Unité systemd
Créer lunité systemd suivant dans `/etc/systemd/system/redis-sentinel.service` :
@ -508,7 +502,7 @@ Voir les requêtes que redis reçoit :
$ redis-cli monitor
~~~
### Nagios/Icinga
### Nagios
Depuis *Debian Stretch*, un check redis à été ajouté dans le paquet `nagios-plugins-contrib`, permettant d'avoir un check plus sophistiqué qu'un simple check TCP. Il est capable de surveiller la réplication, la consommation de mémoire… tout en retournant diverses informations sur le status du serveur. Il faut penser à installer la lib redis pour perl, absente des dépendances.
@ -518,7 +512,6 @@ $ /usr/lib/nagios/plugins/check_redis -H 127.0.0.1
OK: REDIS 3.2.6 on 127.0.0.1:6379 has 0 databases (), up 17 hours 56 minutes
~~~
Sur *Debian Jessie*, il n'y a pas de check redis embarqué. A place, on peut faire un check Nagios « basique » consiste à initier une connexion TCP sur le socket unix du serveur Redis, et s'assurer qu'il répond bien :
~~~
@ -544,7 +537,7 @@ Un plugin Munin existe pour grapher divers paramètres comme la mémoire utilis
# for module in connected_clients key_ratio keys_per_sec per_sec used_keys used_memory; do ln -s /usr/local/share/munin/plugins/redis_ redis_${module}; done
~~~
Si vous avez un mot de passe à votre redis :
Si vous avez une authentification pour votre serveur Redis :
~~~
# cat /etc/munin/plugin-conf.d/munin-node