Redis recarrega as mudanças na configuração sem reiniciar o serviço

4

Quando eu altero a configuração de redis via fantoche, existe uma maneira melhor de carregar a configuração além de reiniciar o serviço de redis?

    
por kalyan 02.01.2013 / 11:25

3 respostas

2

Sim, você poderia fazer isso, mas envolveria escrever seu próprio fornecedor de clientes no Puppet. Não é trivial, mas se você estivesse disposto a reduzir as configurações de seu interesse, seria mais simples.

Um caso simples pode ser apenas definir mestre ou escravo dinamicamente. Nós faríamos esses parâmetros na sua classe Redis. Nós criamos o template redis.conf e colocamos essas configurações da forma que você está fazendo agora. Então você precisaria de algum tipo de sintaxe como a seguinte, por meio da semântica, que provavelmente seria mais expressiva.

redisconf { 'master': enable => 'true', } 

O redisconf seria seu provedor personalizado que seria escrito em Ruby. Ele precisará se conectar à porta do servidor Redis (que é outra entrada e padrão que você precisa definir). Depois que você se conectar, precisará enviar uma informação e capturar a saída resultante como um hash.

O primeiro passo é determinar qual versão do Redis você tem. Se é 2.4 / 2.6 você pode usar config set e config get , senão você vai usar o hash que já temos e rodar comandos manualmente. Em nosso exemplo, você verificaria o valor da função. Se é mestre, não faça nada. Se for um escravo, execute 'slave of nobody' e gere um evento Puppet. Assumindo que existam diferenças, o provedor do Redisconf Puppet precisaria fazer mudanças e, idealmente, verificar ou lançar e errar. Enrole a coisa toda em Puppet-isms e você estaria pronto.

Seria um bom projeto se você decidisse usá-lo.

    
por 02.01.2013 / 19:49
0

Não, uma recarga de configuração não é (atualmente) possível.

Se você manipular as configurações que são ajustáveis através de CONFIG SET , você pode defini-las na execução instância e apenas pular o reinício.
Eu não aconselharia fazer isso em situações normais, já que você pode quebrar o arquivo de configuração e só notá-lo na próxima vez que você reiniciar essa instância.

    
por 02.01.2013 / 12:43
0

Desde que você tenha a persistência configurada por meio de uma diretiva de salvamento, as reinicializações são (principalmente) não-destrutivas.

Se o processo de atualização não tiver persistência, você poderá ativá-lo com CONFIG SET

telnet 127.0.0.1 1234
CONFIG SET SAVE "900 1 300 10 60 10000"

Verifique se o backup de dados é criado indo para o diretório especificado pelo valor de configuração da pasta e procurando por um arquivo que seja igual ao valor de configuração dbfilename. Uma vez criado, você pode editar a configuração e reiniciar o redis e você verá algo assim no log:

[17296] 18 Nov 00:38:32.253 * DB loaded from disk: 0.158 seconds

Viola, você reiniciou o redis e manteve a maioria dos seus dados, excluindo o que aconteceu entre a criação do arquivo de backup e a reinicialização.

    
por 18.11.2015 / 07:01

Tags