Aparentemente, eu tenho uma redis-server
instância em execução, porque quando tento iniciar um novo servidor digitando redis-server
, sou recebido com o seguinte:
Opening port: bind: Address already in use
Não consigo descobrir como parar este servidor e iniciar um novo.
Existe algum comando que eu possa acrescentar redis-server
quando estou digitando na CLI?
Meu sistema operacional é o Ubuntu 10.04.
redis-cli ping
. Um servidor Redis em execução responderá comPONG
.Respostas:
Conecte-se à instância do nó e use o comando shutdown ou, se você estiver no ubuntu, tente reiniciar o redis server através do init.d:
ou pare / inicie:
No Mac
fonte
launchctl
para fazer isso e em outros sistemassystemctl
ouservice
.service redis-server stop
eservice redis-server start
depois de instalá-loapt-get install redis-server
.Uma maneira mais limpa e confiável é entrar no redis-cli e digitar
shutdown
Em redis-cli, digite
help @server
e você verá isso próximo ao final da lista:E se você tiver uma instância redis-server em execução em um terminal, verá o seguinte:
fonte
redis-cli shutdown
. (você pode enviar qualquer comando como este, por exemploredis-cli set cat dog; redis-cli get cat
)redis-cli set cat dog; redis-cli get cat
muda pararedis-cli -a mypassword set cat dog; redis-cli -a mypassword get cat
, o que pode ser irritante após alguns comandos.alias redis-cli="redis-cli -a mypassword"
. Dessa forma, você pode fazer as chamadas como no meu comentário original sem precisar fornecer sua senha novamente a cada uso.redis-cli shutdown
é mais eficaz. A resposta aceita não funciona para mim (OSX Lion). Obrigado, @JesseBuesking.fonte
redis-cli.exe shutdown
redis-cli --help
pudesse ter coberto esse caso.Para o OSX, criei os seguintes aliases para iniciar e parar
redis
(instalado com o Homebrew):Isso funcionou muito bem para o desenvolvimento local!
Agora, o Homebrew tem
homebrew-services
que pode ser usado para iniciar, parar e reiniciar serviços. homebrew-servicesbrew services
é instalado automaticamente quando executado.Se você usar
run
, ele não será iniciado no login (nem na inicialização).start
iniciará oredis
serviço e o adicionará no login e na inicialização.fonte
brew services stop redis
também funciona! :)Digite
SHUTDOWN
a CLIou
se você não se importa com os dados na memória, também pode digitar
SHUTDOWN NOSAVE
para forçar o desligamento do servidor.fonte
Tente
killall redis-server
. Você também pode usarps aux
para encontrar o nome e o pid do seu servidor e depois matá-lokill -9 here_pid_number
.fonte
Opção 1: vá para o diretório de instalação do redis e navegue para
src
, no meu caso:onde 6379 é a porta padrão.
Opção 2: encontre processo redis e mate
E então inicie o kill:
Estou usando o Centos 6.7, x86_64
espero que ajude
fonte
interrompa o tipo de servidor redis no terminal com usuário root
a mensagem será exibida após parar o servidor redis
se você deseja iniciar o tipo redis-server
se você deseja reiniciar o tipo de servidor
fonte
service --status-all
não mostrará redis; portanto, qualquerservice
comando falharáredis-server
. Mas os redis aparecemps -ef
. Não consigo encontrar nenhum documento relacionado.sudo service redis start/stop/status
faz o mesmo, ambos vão.Outra maneira poderia ser:
Funciona em * NIX e OSX
fonte
MacOSX - Funcionou :)
Etapa 1: Encontre o servidor Redis em execução anteriormente
Etapa 2: Finalize o processo específico, localizando PID (Process ID) - Redis Sever
fonte
Se você souber em qual porta estaria executando (por padrão, seria 6379), poderá usar o comando abaixo para obter o pid do processo usando essa porta e, em seguida, executar o comando kill para o mesmo pid.
o comando acima lhe dará pid.
matar
<pid>
;Isso encerraria o servidor.
fonte
systemd, ubuntu 16.04:
fonte
Normalmente, esse problema surge depois que eu desligo o computador (ou deixo de funcionar) de maneira irregular. Acredito que a porta fica presa, enquanto o processo para, mas continua ligado à porta anterior.
9/10 vezes a correção pode ser:
Bom para ir.
fonte
No meu caso, foi:
Para descobrir qual é o nome do seu serviço, você pode executar:
E ele mostrará todos os arquivos Redis no seu sistema.
fonte
Se você fez a instalação (por exemplo, ubuntu) durante a instalação do redis , você pode:
como apontado por @ yojimbo87 :)
fonte
Outra maneira poderia ser:
fonte
A seguir trabalhou para mim no MAC
fonte
Se você estiver executando o redis em um contêiner de docker, nenhuma das respostas presentes ajudará. Você deve parar o contêiner redis. Caso contrário, o processo redis continuará a aparecer.
fonte
Se você souber em qual porta (padrão: 6379) o servidor redis está em execução, você poderá ir com a opção 1 ou verificar seu processo redis e poderá matar com a opção 2
opção 1:
Finalize o processo na porta:
opção 2:
encontre o servidor Redis em execução anteriormente:
Mate o processo específico encontrando PID (ID do processo) - Redis Sever
Agora inicie seu servidor redis com
fonte
Eu não sei especificamente para redis, mas para servidores em geral:
Qual SO ou distribuição? Freqüentemente, haverá um comando stop ou /etc/init.d / ... que poderá procurar o pid existente em um arquivo pid.
Você pode procurar com qual processo já está vinculado à porta
sudo netstat -nlpt
(opções do linux; outros tipos de netstat variarão) e sinalizar para que pare. Eu não usariakill -9
em um servidor em execução, a menos que realmente não haja outro sinal ou método para desligá-lo.fonte
Os comandos abaixo funcionam para mim no Ubuntu Server
fonte
No MacOSX,
Isto é o que funcionou para mim
fonte
Uma coisa para verificar se os comandos redis não estão funcionando para você é se seu redis-server.pid está realmente sendo criado. Você especifica o local em que esse arquivo está
e deve ter uma seção parecida com esta:
Verifique a localização e as permissões do diretório PIDFile (no meu caso, '/ run / redis'). Eu estava tentando reiniciar o serviço conectado como implantação, mas as permissões do diretório foram listadas como
drwxrwsr-x 2 redis redis 40 Jul 20 17:37 redis
Se você precisar de uma atualização das permissões do Linux, verifique isso . Mas o problema era que eu estava executando a reinicialização como meu usuário de implantação, cujas permissões acima são rx, não permitindo que meu usuário grave no diretório PIDFile.
Depois que percebi isso, entrei usando root, execute novamente o comando restart no redis (
service redis restart
) e tudo funcionou. Isso foi uma dor de cabeça, mas espero que isso poupe a alguém um pouco de tempo.fonte
Redis possui parâmetro de configuração
pidfile
(por exemplo, /etc/redis.conf - verifique o código-fonte redis ), por exemplo:Se estiver definido ou puder ser definido, em vez de procurar a identificação do processo (pid) usando
ps + grep
algo como isto, poderá ser usado:Se necessário, é possível fazer o redis parar um script como este ( script redis 5.0 init.d padrão adaptado no código-fonte redis ):
fonte