16.04.01 LTS en AWS - Redis ya no funciona

10

Hemos estado ejecutando redis-server en varias instancias de Ubuntu AWS EC2 (14.04.4 LTS) sin problemas. Hice un servidor de prueba para probar la actualización a Ubuntu 16.04.1 LTS, y ahora redis no funcionará.

Si intento iniciar redis manualmente, obtengo esto:

~$ sudo service redis-server restart
Job for redis-server.service failed because the control process exited with error code. See "systemctl status redis-server.service" and "journalctl -xe" for details.

Información de error:

~$ systemctl status redis-server.service  
● redis-server.service - Advanced key-value store
  Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
  Active: inactive (dead) (Result: exit-code) since Wed 2016-10-19 19:26:06 UTC; 25min ago
    Docs: http://redis.io/documentation,
          man:redis-server(1)
 Process: 3730 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=1/FAILURE)
 Process: 3724 ExecStartPre=/bin/run-parts --verbose /etc/redis/redis-server.pre-up.d (code=exited, status=0/SUCCESS)

Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Control process exited, code=exited status=1
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: Failed to start Advanced key-value store.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Unit entered failed state.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Failed with result 'exit-code'.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Service hold-off time over, scheduling restart.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: Stopped Advanced key-value store.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Start request repeated too quickly.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: Failed to start Advanced key-value store.

He intentado lo siguiente:

  • reinició el servidor
  • ejecuta nuestro script de implementación, que incluye un reinicio de redis
  • usado sudo apt-getpara desinstalar y reinstalar redis-server
  • Hice la instalación dos veces, una vez que acepta el nuevo /etc/redis/redis.confarchivo del paquete y una vez que mantiene nuestro archivo original

¿Alguna sugerencia?

John Feltz
fuente
no es una respuesta, pero podría ayudar: puede ejecutar redis como un contenedor acoplable.
pLumo

Respuestas:

5

Instalé redis usando apt-get install redis-server

El problema para mí: los tutoriales que he encontrado, por ejemplo. la otra respuesta a esta pregunta supone que los binarios redis se encuentran en /usr/local/bin.

En mi instalación están ubicados, por /usr/binlo que una solución para eso está cambiando /etc/systemd/system/redis.servicepara reflejar esto.

En este punto, puedo comenzar /usr/bin/redis-server /etc/redis/redis.conf manualmente y ejecutar con éxito sudo systemctl start redis.

Entonces, lo que debe hacer para que Redis funcione en 16.04 es:

  1. Asegúrate de haberlo instalado usando apt-get install redis-server, no descargues el tar, luego hazlo e instálalo.
  2. Cree o edite el servicio de redis ejecutando sudo vi /etc/systemd/system/redis.service
  3. Edítelo para que se vea así y luego guarde:
[Unit]
Description=Redis Datastore Server
After=network.target

[Service]
Type=forking
PIDFile=/var/run/redis/redis_6379
User=redis
Group=redis

Environment=statedir=/var/run/redis
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p ${statedir}
ExecStartPre=/bin/chown -R redis:redis ${statedir}
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/usr/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target
  1. Salga de vi a bash. Debería poder iniciar el servicio ahora consudo systemctl start redis
  2. Si el punto 4 no funciona, probablemente al menos puede iniciarlo manualmente ejecutando sudo /usr/bin/redis-server /etc/redis/redis.conf.

La parte importante que tuve que editar fue asegurarme de que

ExecStart = / usr / bin / redis-server /etc/redis/redis.conf

ExecStop = / usr / bin / redis-cli shutdown

las líneas no apuntaban a usr/local/bin/foo- es necesario eliminar el/local

Scottmeup
fuente
1

Tuve el mismo problema pero la causa fue diferente.

Usé redis para probar en una VM con el cliente dhcp.

La configuración /etc/redis/redis.confapuntaba a la IP local incorrecta (antigua) y, por lo tanto, no podía vincular el servicio a la nueva IP asignada desde DHCP.

Aquí está el registro de dicho problema:

mar 13 12:47:53 dev-vm systemd[1]: Failed to start Advanced key-value store.
mar 13 12:47:53 dev-vm systemd[1]: redis-server.service: Unit entered failed state.
mar 13 12:47:53 dev-vm systemd[1]: redis-server.service: Failed with result 'resources'.
mar 13 12:47:53 dev-vm systemd[1]: redis-server.service: Service hold-off time over, scheduling restart.
mar 13 12:47:53 dev-vm systemd[1]: Stopped Advanced key-value store.
mar 13 12:47:53 dev-vm systemd[1]: redis-server.service: Start request repeated too quickly.
mar 13 12:47:53 dev-vm systemd[1]: Failed to start Advanced key-value store.
Stefano Coletta
fuente
0

Tal vez intente esto, aquí hay una configuración que funciona para /lib/systemd/system/redis.servicever si esto tal vez funcione para usted.

[Unit]
Description=Redis Datastore Server
After=network.target

[Service]
Type=forking
PIDFile=/var/run/redis/redis_6379
User=redis
Group=redis

Environment=statedir=/var/run/redis
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p ${statedir}
ExecStartPre=/bin/chown -R redis:redis ${statedir}
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf 
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

Luego verifique el archivo de registro especificado en la configuración /etc/redis/redis.confpara asegurarse de que tiene los permisos correctos.

ognjen
fuente
0

Si estás usando Ubuntu, usted debe tener supervised systemden /etc/redis/redis.conf.

Amir.S
fuente
0

Abra su terminal y ejecute el comando ifconfig, luego obtendrá su dirección IP como 192.168.0.109, luego edite su configuración ejecutando el comando sudo nano /etc/redis/redis.conf aquí nano es un editor. Puede usar cualquier otro editor, lo que quiera, luego buscar enlazar y poner su dirección IP como

vincular 127.0.0.1 192.168.0.109 aquí mi ip es 192.168.0.109 luego reinicie su servidor con este comando sudo systemctl restart redis.service compruebe el estado de su servidor sudo systemctl redis y luego lo encontrará activo

Sadi
fuente