Aparentemente tengo una redis-server
instancia ejecutándose porque cuando intento iniciar un nuevo servidor ingresando redis-server
, me saludan con lo siguiente:
Opening port: bind: Address already in use
No puedo entender cómo detener este servidor e iniciar uno nuevo.
¿Hay algún comando que pueda agregar redis-server
cuando estoy escribiendo en la CLI?
Mi sistema operativo es Ubuntu 10.04.
redis-cli ping
. Un servidor Redis en ejecución responderá conPONG
.Respuestas:
Conéctese a la instancia del nodo y use el comando de apagado o si está en ubuntu, puede intentar reiniciar el servidor redis a través de init.d:
o detenerlo / iniciarlo:
En Mac
fuente
launchctl
para hacer esto, y en otros sistemas,systemctl
oservice
.service redis-server stop
yservice redis-server start
, después de haberlo instalado conapt-get install redis-server
.Una forma más limpia y confiable es entrar en redis-cli y luego escribir
shutdown
En redis-cli, escriba
help @server
y verá esto cerca del final de la lista:Y si tiene una instancia de redis-server ejecutándose en una terminal, verá esto:
fuente
redis-cli shutdown
. (puede enviar cualquier comando como este, por ejemploredis-cli set cat dog; redis-cli get cat
)redis-cli set cat dog; redis-cli get cat
cambia aredis-cli -a mypassword set cat dog; redis-cli -a mypassword get cat
, lo que puede ser molesto después de algunos comandos.alias redis-cli="redis-cli -a mypassword"
. De esta manera, puede hacer las llamadas como en mi comentario original sin tener que volver a proporcionar su contraseña en cada uso.redis-cli shutdown
Es más efectivo. La respuesta aceptada no funciona para mí (OSX Lion). Gracias, @JesseBuesking.fuente
redis-cli.exe shutdown
redis-cli --help
pudiera haber cubierto este caso.Para OSX, creé los siguientes alias para iniciar y detener
redis
(instalado con Homebrew):¡Esto ha funcionado muy bien para el desarrollo local!
Homebrew ahora tiene
homebrew-services
que se puede usar para iniciar, detener y reiniciar servicios. servicios de elaboración caserabrew services
se instala automáticamente cuando se ejecuta.Si lo usa
run
, no lo iniciará al iniciar sesión (ni al arrancar).start
iniciará elredis
servicio y lo agregará al iniciar sesión y arrancar.fuente
brew services stop redis
también funciona! :)Escriba
SHUTDOWN
la CLIo
Si no le importan sus datos en la memoria, también puede escribir
SHUTDOWN NOSAVE
para forzar el apagado del servidor.fuente
Tratar
killall redis-server
. También puede usarps aux
para encontrar el nombre y el pid de su servidor, y luego matarlo conkill -9 here_pid_number
.fuente
Opción 1: vaya al directorio de instalación de redis y navegue hasta
src
, en mi caso:donde 6379 es el puerto predeterminado.
Opción 2: encontrar el proceso de redis y matar
Y luego iniciar matar:
Estoy usando Centos 6.7, x86_64
Espero eso ayude
fuente
detener el tipo de servidor redis en terminal con usuario root
el mensaje se mostrará después de detener el servidor redis
si desea iniciar el tipo de servidor redis
si quieres reiniciar el tipo de servidor
fuente
service --status-all
no mostrará redis, por lo tanto, cualquierservice
comando fallaráredis-server
. Pero Redis se muestraps -ef
. Simplemente no puedo encontrar ningún documento relacionado.sudo service redis start/stop/status
hace lo mismo, ambos van.Otra forma podría ser:
Funciona en * NIX y OSX
fuente
MacOSX - Funcionó :)
Paso 1: busque el servidor Redis que se ejecutaba anteriormente
Paso 2: elimine el proceso específico buscando PID (ID de proceso) - Redis Sever
fuente
Si sabe en qué puerto se estaría ejecutando (de manera predeterminada sería 6379), puede usar el siguiente comando para obtener el pid del proceso utilizando ese puerto y luego puede ejecutar el comando kill para el mismo pid.
el comando anterior te dará pid.
matar
<pid>
;Esto apagaría su servidor.
fuente
systemd, ubuntu 16.04:
fuente
Por lo general, este problema surge después de que apago mi computadora (o la dejo ejecutándose) de manera irregular. Creo que el puerto se queda atascado, mientras que el proceso se detiene pero continúa vinculado al puerto anterior.
9/10 veces la solución puede ser:
Bueno para ir.
fuente
En mi caso fue:
Para saber cuál es el nombre de su servicio, puede ejecutar:
Y le mostrará todos los archivos Redis en su sistema.
fuente
si realizó la instalación (por ejemplo, ubuntu) mientras instalaba redis , puede hacer:
como lo señaló @ yojimbo87 :)
fuente
Otra forma podría ser:
fuente
Siguiente funcionó para mí en MAC
fuente
Si está ejecutando redis en un contenedor acoplable, ninguna de las respuestas actuales le ayudará. Tienes que detener el contenedor redis. De lo contrario, el proceso de redis seguirá reapareciendo.
fuente
Si sabe en qué puerto (predeterminado: 6379) se está ejecutando su servidor redis, puede ir con la opción 1 o puede verificar su proceso de redis y puede matar con la opción 2
opción 1:
Proceso de eliminación en el puerto:
opción 2:
buscar el servidor Redis que se estaba ejecutando anteriormente
Elimine el proceso específico buscando PID (ID de proceso) - Redis Sever
Ahora inicie su servidor redis con
fuente
No sé específicamente para redis, pero para servidores en general:
¿Qué sistema operativo o distribución? A menudo habrá un comando stop o /etc/init.d / ... que podrá buscar el pid existente en un archivo pid.
Puede buscar qué proceso ya está vinculado al puerto con
sudo netstat -nlpt
(opciones de Linux; otros sabores de netstat variarán) y señalar que se detenga. Yo no utilizokill -9
en un servidor que ejecuta a menos que realmente no hay otra señal o método para apagarlo.fuente
Los siguientes comandos me funcionan en Ubuntu Server
fuente
En MacOSX,
Esto es lo que funcionó para mí.
fuente
Una cosa para verificar si los comandos redis no funcionan para usted es si su redis-server.pid realmente se está creando. Usted especifica la ubicación de dónde está este archivo
y debería tener una sección que se vea así:
Verifique la ubicación y los permisos del directorio PIDFile (en mi caso, '/ run / redis'). Estaba intentando reiniciar el servicio conectado como despliegue, pero los permisos del directorio estaban listados como
drwxrwsr-x 2 redis redis 40 Jul 20 17:37 redis
Si necesita una actualización de los permisos de Linux, consulte esto . Pero el problema era que estaba ejecutando el reinicio como mi usuario de implementación, cuyos permisos anteriores son rx, no permitiendo que mi usuario escriba en el directorio PIDFile.
Una vez que me di cuenta de eso, inicié sesión con root, volví a ejecutar el comando de reinicio en redis (
service redis restart
) y todo funcionó. Eso fue un dolor de cabeza, pero espero que esto le ahorre a alguien un poco de tiempo.fuente
Redis tiene un parámetro de configuración
pidfile
(por ejemplo, /etc/redis.conf - verifique el código fuente de redis ), por ejemplo:Si está configurado o podría establecerse, en lugar de buscar el id de proceso (pid) usando
ps + grep
algo como esto podría usarse:Si es necesario, se puede hacer un script de detención de redis como este ( script predeterminado adaptado redis 5.0 init.d en el código fuente de redis ):
fuente