diff --git a/HowtoRedis.md b/HowtoRedis.md index 687bb894..1586850d 100644 --- a/HowtoRedis.md +++ b/HowtoRedis.md @@ -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 +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 -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 :