Comment désactiver la persistance avec Redis?

91

Je me demandais comment désactiver la présence dans Redis. Il est fait mention de la possibilité de le faire ici: http://redis.io/topics/persistence . Je veux dire exactement dans le même sens que celui décrit ici. Toute aide serait très appréciée!

Cénoc
la source
J'ai trouvé surprenant, sinon ennuyeux, qu'il n'y ait pas d'instructions sur le site officiel à ce sujet ni qu'il y ait beaucoup d'informations sur Internet à ce sujet (voyez que stackoverflow.com/questions/19581059/… a beaucoup plus de votes et est mieux documenté que ce). Globalement, étant donné que Redis est souvent utilisé comme base de données non persistante.
Akronix

Réponses:

111

Pour désactiver la persistance de toutes les données dans Redis, procédez comme suit dans le redis.conffichier:

  1. Désactivez AOF en définissant la appendonlydirective de configuration sur no(il s'agit de la valeur par défaut). comme ça:

    appendonly no
    
  2. Désactivez les instantanés RDB en commentant toutes les savedirectives de configuration (il y en a 3 qui sont définies par défaut)

    #save 900 1
    #save 300 10
    #save 60 10000
    

Après les modifications, assurez-vous de redémarrer Redis pour les appliquer.

Vous pouvez également utiliser la CONFIG SETcommande pour appliquer ces modifications pendant l'exécution (assurez-vous simplement de faire également une CONFIG REWRITEpour conserver les modifications).

Remarque: selon la version de votre Redis, il existe d'autres modifications qui empêchent Redis d'accéder au disque pour les tâches liées à la réplication.

Itamar Haber
la source
1
redis> config set auto-aof-
rewrite
2
J'ai configuré mon Redis pour ne pas enregistrer les données sur le disque en commentant les trois savedirectives. Je peux voir qu'il n'enregistre plus périodiquement les données. Cependant, je vois toujours un fichier .rdb écrit sur le disque chaque fois que j'arrête mon serveur. Pourrait-il être créé de toute façon, peut-être en raison du processus de basculement?
Jolta
1
Pour rendre cela efficace, vous pouvez utiliser les commandes répertoriées ici pour le faire via cli: stackoverflow.com/a/34736871/2904315 Ou vous pouvez simplement modifier le fichier redis.conf comme expliqué dans cette réponse, puis redémarrer le service avec:systemctl restart redis
Akronix
Sous Linux, le redis.conffichier situé dans/etc/redis/redis.conf
Amin Shojaei
77

Si vous voulez éviter de jouer avec redis.conf(environnements de développement / test), vous pouvez le faire via la ligne de commande avec

redis-server --save "" --appendonly no

(testé avec le serveur redis 3.2.6et 5.0.5)

Kostis
la source
1
Etes-vous sûr que --appendonly noc'est nécessaire? N'est-il pas désactivé par défaut?
aleclarson
4
Cela pourrait être vrai. Mais cela ne fait certainement pas de mal de l'ajouter ici, juste pour être prudent, ce que nous voulons, c'est désactiver tous les types de persistance;)
Kostis
hmm, n'a pas fonctionné pour moi sur Windows 10 dans WSL (Ubuntu 16)
James Gentes
@JamesGentes quelle est l'erreur. Cela fonctionne dans mon Fedora 29 avec Redis 5.0.3, je l'ai testé maintenant. Peut-être avez-vous besoin de transmettre les arguments d'une manière différente dans Windows? Quelle est la version Redis? redis-server --helppourrait peut-être donner un aperçu
Kostis
1
Fonctionne également sur la version 5.0.5.
abbas
17

Comme AOF (appendonly) est désactivé par défaut, il n'y a qu'une seule chose à faire pour désactiver la persistance sans redémarrage du service Redis est de désactiver la configuration de sauvegarde .

Pour le désactiver à l'exécution et vérifier les commandes d'exécution ci-dessous

Vérifier la configuration d'enregistrement actuelle

pawan@devops:~$ redis-cli config get save
1) "save"
2) "900 1 300 10 60 10000"

Le même paramètre sera également présent dans le fichier redis.conf

pawan@devops:~$ grep -w 'save' /etc/redis/redis.conf | grep -v '#'
save 900 1
save 300 10
save 60 10000

Désactiver l'enregistrement de la configuration

pawan@devops:~$ redis-cli config set save ""
OK

Modifiez le fichier redis.conf avec la nouvelle configuration de sauvegarde afin que la configuration reste permanente lors du redémarrage du service Redis

root@ip-172-16-3-114:~# redis-cli config rewrite
OK

Confirmer la nouvelle configuration de sauvegarde

pawan@devops:~$ redis-cli config get save
1) "save"
2) ""

Maintenant, si vous analysez le fichier redis.conf pour enregistrer la configuration, il n'y aura aucun résultat

pawan@devops:~$ grep -w 'save' /etc/redis/redis.conf | grep -v '#'  
pawan@devops:~$
PKSingh
la source
8

Pour les instantanés RDB, vous pouvez le désactiver en utilisant

$ sed -e '/save/ s/^#*/#/' -i /etc/redis/redis.conf && sudo service redis-server restart

Il commentera les lignes de sauvegarde dans redis.conf et redémarrera le serveur redis

Naren Yellavula
la source