Como desativar a persistência com redis?

95

Eu queria saber como desativar a presença no redis. Há menção da possibilidade de fazer isso aqui: http://redis.io/topics/persistence . Quero dizer exatamente no mesmo sentido conforme descrito aqui. Qualquer ajuda seria muito bem vinda!

Cenoc
fonte
Achei surpreendente, senão irritante, que não haja instruções no site oficial sobre isso, nem haja muitas informações na Internet sobre isso (veja que stackoverflow.com/questions/19581059/… tem muito mais votos e está melhor documentado do que esta). Em geral, considerando que o Redis é frequentemente usado como um banco de dados não persistente.
Akronix

Respostas:

115

Para desativar a persistência de todos os dados no Redis, faça o seguinte no redis.confarquivo:

  1. Desative o AOF definindo a appendonlydiretiva de configuração como no(é o valor padrão). como isso:

    appendonly no
    
  2. Desative o instantâneo RDB comentando todas as savediretivas de configuração (existem 3 que são definidas por padrão)

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

Após a alteração, certifique-se de reiniciar o Redis para aplicá-los.

Como alternativa, você pode usar o CONFIG SETcomando para aplicar essas alterações durante o tempo de execução (apenas certifique-se de também fazer um CONFIG REWRITEpara persistir as alterações).

Observação: dependendo da versão do seu Redis, existem outros ajustes que impedem o Redis de acessar o disco para tarefas relacionadas à replicação.

Itamar Haber
fonte
1
redis> config definir porcentagem de reescrita automática 0
toontong
2
Eu configurei meu Redis para não salvar dados no disco comentando as três savediretivas. Posso ver que ele não faz mais instantâneos dos dados periodicamente. No entanto, ainda estou vendo um arquivo .rdb gravado no disco sempre que encerro meu servidor. Ele poderia ser criado de qualquer maneira, talvez devido ao processo de failover?
Jolta
1
Para realmente tornar isso eficaz, você pode usar os comandos listados aqui para fazê-lo via cli: stackoverflow.com/a/34736871/2904315 Ou você pode apenas alterar o arquivo redis.conf conforme explicado nesta resposta e reiniciar o serviço com:systemctl restart redis
Akronix
No Linux, o redis.confarquivo localizado em/etc/redis/redis.conf
Amin Shojaei
79

Se você quiser evitar brincar com redis.conf(ambientes de desenvolvimento / teste), você pode fazer isso através da linha de comando com

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

(testado com servidor redis 3.2.6e 5.0.5)

Kostis
fonte
1
Tem certeza de que --appendonly noé necessário? Não está desligado por padrão?
aleclarson
4
Pode ser verdade. Mas certamente não faz mal adicioná-lo lá, só para ficar no lado seguro, o que queremos é desabilitar todos os tipos de persistência;)
Kostis
hmm, não funcionou para mim no Windows 10 no WSL (Ubuntu 16)
James Gentes
@JamesGentes qual é o erro. Funciona no meu Fedora 29 com Redis 5.0.3, testei agora. Talvez você precise passar os argumentos de uma maneira diferente no Windows? Qual é a versão do Redis? redis-server --helppoderia talvez dar algumas dicas
Kostis
1
Funciona na versão 5.0.5 também.
abbas
20

Como o AOF (appendonly) é desabilitado por padrão, só há uma coisa a ser feita para desabilitar a persistência sem reiniciar o serviço redis: desabilitar a configuração de salvamento .

Para desativá-lo no tempo de execução e verificar os comandos abaixo de execução

Verifique a configuração atual de salvamento

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

A mesma configuração estará presente no arquivo redis.conf também

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

Desativar salvar configuração

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

Modifique o arquivo redis.conf com a nova configuração salva para que a configuração permaneça permanente na reinicialização do serviço redis

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

Confirme a nova configuração salva

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

Agora, se você varrer o arquivo redis.conf para salvar a configuração, não haverá resultados

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

Para o instantâneo RDB, você pode desativá-lo usando

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

Ele comentará as linhas de salvamento no redis.conf e reiniciará o redis-server

Naren Yellavula
fonte