Error al iniciar Redis Datastore Server (Ubuntu 16.04.1 LTS)

10

Acabo de instalar redis y no funciona cuando intento iniciar el servicio con el comando:

sudo service redis-server start

Esto es resultado de journalctl -xe:

Subject: Unit redis-server.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit redis-server.service has finished shutting down.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Start request repeated too quickly.
Mar 02 13:22:46 aaa-notebook systemd[1]: Failed to start Redis Datastore Server.

y este es el resultado de systemctl status redis-server.service:

 redis-server.service - Redis Datastore Server
 Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
 Active: inactive (dead) (Result: resources) since Kam 2017-03-02 13:22:46 WIB; 5min ago
 Process: 12120 ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)

Mar 02 13:22:46 aaa-notebook systemd[1]: Failed to start Redis Datastore Server.
Mar 02 13:22:46 aaaaa-notebook systemd[1]: redis-server.service: Unit entered failed state.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Failed with result 'resources'.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Service hold-off time over, scheduling restart.
Mar 02 13:22:46 aaa-notebook systemd[1]: Stopped Redis Datastore Server.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Start request repeated too quickly.
Mar 02 13:22:46 aaa-notebook systemd[1]: Failed to start Redis Datastore Server.
Kakashi
fuente

Respuestas:

14

Tuve el mismo problema y no pude encontrar una solución de trabajo en ningún lado. Después de algunas búsquedas, la siguiente solución funcionó para mí (Ubuntu 16.04)

En /etc/systemd/system/redis.service agregue lo siguiente en la [Service]sección.

Type=forking
Manolis Tsilikidis
fuente
1
El mío también, gracias! ¿Cómo descubriste agregar esto? ¿Qué es lo que hace?
fpghost
4

Abra su servicio usando cualquier editor.

vim /etc/systemd/system/redis.service

Mira tu [Service]sección en la ExecStartmía fue:

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

Ejecute este comando para ver qué errores están ocurriendo. El mío respondió con esto:

 Fatal error, can't open config file '/etc/redis/redis.conf'

Así que acabo de actualizar esa línea a esto (donde estaba mi archivo de configuración real)

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

Que es donde el inicio rápido de redis lo coloca por defecto ... :)

Kevin Upton
fuente
2

Me enfrenté al mismo error. Pero para mí la razón era totalmente diferente: se debía a un error tipográfico en mi redis.confarchivo. Corregir eso y sudo systemctl restart redis-serverreiniciar redis al instante. Es engañoso que también se arroje el mismo error para este caso.

creativcoder
fuente
2

En mi caso, el directorio de registro ( /var/log/redis) que menciono en el /etc/redis/redis.confarchivo no estaba presente

Como encuentro el error

Tratar

/usr/local/bin/redis-server /etc/redis/redis.conf

Este es el mismo comando presente en mi /etc/systemd/system/redis.servicearchivo

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

Solución

1) Crear el directorio de registro

sudo mkdir -p /var/log/redis

2) Dar acceso adecuado para crear y escribir registros

sudo chown redis:redis /var/log/redis

Intenta iniciar el servicio nuevamente

sudo service redis-server start 

o

sudo service redis start
Yogesh Yadav
fuente
1

Falta el archivo redis.service en el directorio "/ etc / systemd / system /"

sudo nano /etc/systemd/system/redis.service

luego copie y pegue estas líneas

[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

guarda y cierra este archivo

A continuación, modifique los permisos del directorio

$ sudo adduser --system --group --no-create-home redis
$ sudo chown redis:redis /var/lib/redis
$ sudo chmod 770 /var/lib/redis

luego inicie el servidor redis

$ sudo systemctl start redis

comprobar si se está ejecutando ahora

$ sudo systemctl status redis

REFERENCIA: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-redis-on-ubuntu-16-04

Rishik Rohan
fuente
0

Por favor revisa tu redis.log. Debería ver algo como esto:

41393:M 07 Jun 17:02:19.034 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
41393:M 07 Jun 17:02:19.034 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.
41393:M 07 Jun 17:02:19.034 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
41393:M 07 Jun 17:02:19.034 # Can't open the append-only file: Read-only file system

Por lo tanto, verifique los límites de su sistema y quizás los permisos de archivo de su redisAOF ( /var/lib/redis/*). Para los límites del sistema, aquí hay una buena guía .

Thomas Schwärzl
fuente
0

Necesitaba una carpeta / var / lib / redis y un usuario y grupo redis.

Utilicé los consejos https://askubuntu.com/a/981641/451682 de Kevin Upton para encontrar mis problemas: vim /etc/systemd/system/redis.serviceme llevó a /usr/local/bin/redis-server /etc/redis/redis.confla respuesta con la Can't chdir to '/var/lib/redis': No such file or directoryque creé sudo mkdir /var/lib/redis.

Entonces, sin embargo, también necesitaba crear el usuario y grupo redis y dejarlo en el directorio / var / lib / redis, siguiendo https://askubuntu.com/a/918408/451682 de Rishik Rohan :

sudo adduser --system --group --no-create-home redis
sudo chown redis:redis /var/lib/redis
sudo chmod 770 /var/lib/redis

Gracias a los dos!

Forma de vida alienígena
fuente
0

después de hacer todo conf intente estos comandos

sudo systemctl daemon-reload

sudo chown redis:redis /var/lib/redis

sudo chmod 770 /var/lib/redis

Y después

sudo systemctl start redis
Susaj S Nair
fuente
0

Pasos para resolver ese problema: - + ============== + A. Establezca el límite de memoria en redis.conf en la línea numérica 566

566 maxmemory 256mb 567 maxmemory-policy allkeys-lru

B. establezca la configuración de memoria de sobrecompromiso del kernel de Linux en 1:

$ sudo sysctl vm.overcommit_memory = 1

o /etc/sysctl.conf y cámbielo a 1.

C. Reinicie el servidor redis ahora.

$ systemctl reiniciar redis

Por favor, compruebe ahora el estado de Redis.

Y si el problema persiste, vaya y edite y redistribuya el archivo de servicio.

========= vi /etc/systemd/system/redis.service

Verás así: -

[Unidad] Descripción = Redis In-Memory Data Store After = network.target

[Servicio] Usuario = grupo raíz = root ExecStart = / usr / local / bin / redis-server /etc/redis/redis.conf ExecStop = / usr / local / bin / redis-cli shutdown Restart = siempre

Tipo = Bifurcación

[Instalar] WantedBy = multi-user.target

Cámbielo ExecStart = / usr / local / bin / redis-server /etc/redis/redis.conf

a

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

Ahora, inicie el servicio de redis

$ systemctl start redis

Ahora Redis comenzará sin dar ningún error.

+ ============== +

Prueba de redis: -

[root @ server] # redis-cli 127.0.0.1:6379> ping Use el comando echo para hacer eco de una cadena dada: 127.0.0.1:6379> echo "Tecmint está probando Redis" También puede establecer un valor clave usando el comando set así: 127.0.0.1:6379> establecer mykey "está probando Redis" Ahora vea el valor de mykey: 127.0.0.1:6379> get mykey "está probando Redis" 127.0.0.1:6379> salir [root @ server] #

Ahora redis comenzó con éxito y se ejecuta.

+ ================== +

Gracias y Saludos

Tecnologías Everdata
fuente