Ajout "info memory", déplacement et fusion section Configuration à chaud

This commit is contained in:
whirigoyen 2022-12-22 09:54:59 +01:00
parent 3c61c0c552
commit 47db59663d

View file

@ -70,11 +70,17 @@ maxmemory 104857600
**Note importante**: la valeur de `maxmemory` indique la quantité maximale de mémoire utilisable, au delà de laquelle Redis applique une [politique spécifique](#politique-sur-la-mémoire). Par défaut il s'agit de `noeviction`. Voir plus bas pour plus de détails.
La plupart des options sont reconfigurables en mode CLI via la commande `CONFIG SET`.
Pour choisir la bonne valeur de `maxmemory`, on peut s'aider de la commande Redis `INFO MEMORY` (Redis < 4) ou `MEMORY STATS` (Redis >= 4).
### Configuration à chaud
La plupart des options sont reconfigurables à chaud en mode CLI via la commande `CONFIG SET`.
La liste des arguments peut être listée :
~~~
redis> CONFIG get *
# redis-cli
redis> CONFIG GET *
1) "dir"
2) "/var/lib/redis"
3) "dbfilename"
@ -87,6 +93,20 @@ redis> CONFIG get *
10) "0"
~~~
Par exemple, pour passer le paramètre `maxmemory` à 1G :
~~~
# redis-cli
redis> AUTH <PASSWORD>
OK
redis> CONFIG SET maxmemory 1024000000
OK
~~~
Attention : Si on veut que la configuration soit persistante, il faut également mettre à jour le paramètre dans `/etc/redis/redis.conf`.
### bind
Pour écouter sur plusieurs interfaces :
@ -97,9 +117,10 @@ bind 192.0.32.42 127.0.0.1
**Attention** : si on fait un `bind` sur plusieurs IP, il faut que la première de la liste soit l'IP publique du serveur. Par exemple : `bind 192.0.32.42 127.0.0.1`
### Utilisation mémoire / Réglage Kernel
Il est recommendé, surtout pours les grosses instances redis d'activer l'overcommit au niveau du Kernel Linux. Si ce n'est pas le cas, ça peut empêcher Redis de faire ses sauvegardes.
### Réglage du noyau
Il est recommandé, surtout pour les grosses instances redis d'activer l'overcommit au niveau du Kernel Linux. Si ce n'est pas le cas, ça peut empêcher Redis de faire ses sauvegardes.
~~~
# cat /etc/sysctl.d/evolinux-redis.conf
@ -109,9 +130,10 @@ vm.overcommit_memory=1
# sysctl vm.overcommit_memory=1
~~~
### Politique sur la mémoire
Lorsqu'on définit une limite de mémoire disponible pour Redis (paramètre `maxmemory`, fixé à 100 Mo par défaut dans nos installations), il faut indiquer à Redis quoi faire lorsque celle-ci est épuisée (paramètre `maxmemory-policy`). Il y a plusieurs options, les plus courantes sont :
Lorsqu'on définit une limite de mémoire disponible pour Redis (paramètre `maxmemory`, en octets, fixé à 100 Mo par défaut dans nos installations), il faut indiquer à Redis quoi faire lorsque celle-ci est épuisée (paramètre `maxmemory-policy`). Il y a plusieurs options, les plus courantes sont :
* `noeviction` (par défaut) : Redis ne supprime jamais de clé existante et provoque des erreurs d'écriture.
* `allkeys-lru` : Redis supprime les clés selon l'algorythme LRU (_least recently used_ ; moins récemment utilisé).
@ -121,21 +143,6 @@ Lorsque Redis est utilisé exclusivement pour du cache, il est conseillé de cho
Lorsque les données stockées dans Redis ne doivent surtout pas risquer de disparaître, il faut choisir `noeviction` et gérer les éventuelles erreurs d'écriture.
### Configuration à chaud
Il est pssible de configurer les paramètres de Redis à chaud. Par exemple, pour passer le paramètre `maxmemory` à 1G :
~~~
# redis-cli
> AUTH <PASSWORD>
OK
> CONFIG SET maxmemory 1024000000
OK
~~~
Attention : Si on veut que la configuration soit persistante, il faut également mettre à jour le paramètre dans `/etc/redis/redis.conf`.
## Utilisation
En mode CLI :