Redis Datastore Server konnte nicht gestartet werden (Ubuntu 16.04.1 LTS)

9

Ich habe gerade Redis installiert und es funktioniert überhaupt nicht, wenn ich versuche, den Dienst mit dem Befehl zu starten:

sudo service redis-server start

Dies ist das Ergebnis von 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.

und das ist das Ergebnis von 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
quelle

Antworten:

14

Ich hatte das gleiche Problem und konnte nirgendwo eine funktionierende Lösung finden. Nach einiger Suche hat das folgende Update für mich funktioniert (Ubuntu 16.04)

Fügen Sie in /etc/systemd/system/redis.service Folgendes unter dem [Service]Abschnitt hinzu.

Type=forking
Manolis Tsilikidis
quelle
1
Meins auch, danke! Wie haben Sie entdeckt, dies hinzuzufügen? Was macht es eigentlich?
fpghost
3

Öffnen Sie Ihren Dienst mit einem beliebigen Editor.

vim /etc/systemd/system/redis.service

Schauen Sie sich Ihren [Service]Abschnitt bei ExecStartmir an:

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

Führen Sie diesen Befehl aus, um festzustellen, welche Fehler auftreten. Meins antwortete damit:

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

Also habe ich gerade diese Zeile auf diese aktualisiert (wo meine eigentliche Konfigurationsdatei war)

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

Hier platziert redis quickstart es standardmäßig ... :)

Kevin Upton
quelle
2

Ich hatte den gleichen Fehler. Aber für mich war der Grund völlig anders: Es lag an einem Tippfehler in meiner redis.confDatei. Wenn Sie dies korrigieren und sudo systemctl restart redis-serverneu starten, wird Redis sofort neu gestartet. Es ist irreführend, dass der gleiche Fehler auch für diesen Fall ausgegeben wird.

Creativcoder
quelle
2

In meinem Fall war das Protokollverzeichnis ( /var/log/redis), das ich in der /etc/redis/redis.confDatei erwähne, nicht vorhanden

Wie finde ich den Fehler?

Versuchen

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

Dies ist der gleiche Befehl, der in meiner /etc/systemd/system/redis.serviceDatei vorhanden ist

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

Lösung

1) Erstellen Sie das Protokollverzeichnis

sudo mkdir -p /var/log/redis

2) Gewähren Sie den richtigen Zugriff zum Erstellen und Schreiben von Protokollen

sudo chown redis:redis /var/log/redis

Versuchen Sie, den Dienst erneut zu starten

sudo service redis-server start 

oder

sudo service redis start
Yogesh Yadav
quelle
1

Die Datei redis.service fehlt im Verzeichnis "/ etc / systemd / system /"

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

Kopieren Sie dann diese Zeilen und fügen Sie sie ein

[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

Speichern und schließen Sie diese Datei

Als nächstes ändern Sie die Verzeichnisberechtigungen

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

Als nächstes starten Sie den Redis-Server

$ sudo systemctl start redis

Überprüfen Sie, ob es jetzt läuft

$ sudo systemctl status redis

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

Rishik Rohan
quelle
0

Bitte überprüfen Sie Ihre redis.log. Sie sollten so etwas sehen:

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

Überprüfen Sie daher Ihre Systemgrenzen und möglicherweise die Dateiberechtigungen Ihres redisAOF ( /var/lib/redis/*). Für Systemgrenzen finden Sie hier eine gute Anleitung .

Thomas Schwärzl
quelle
0

Ich brauchte sowohl einen Ordner / var / lib / redis als auch einen Redis-Benutzer und eine Gruppe.

Ich habe Kevin Uptons /ubuntu//a/981641/451682 Ratschläge verwendet, um meine Probleme zu finden: vim /etc/systemd/system/redis.serviceführte mich zu /usr/local/bin/redis-server /etc/redis/redis.confden Antworten, mit Can't chdir to '/var/lib/redis': No such file or directorydenen ich erstellt habe sudo mkdir /var/lib/redis.

Dann musste ich aber auch den Redis-Benutzer und die Redis-Gruppe erstellen und diese in das Verzeichnis / var / lib / redis einfügen, indem ich Rishik Rohans /ubuntu//a/918408/451682 folgte :

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

Danke euch beiden!

Alien Lebensform
quelle
0

Nachdem Sie alle Einstellungen vorgenommen haben, versuchen Sie diese Befehle

sudo systemctl daemon-reload

sudo chown redis:redis /var/lib/redis

sudo chmod 770 /var/lib/redis

Und danach

sudo systemctl start redis
Susaj S Nair
quelle
0

Schritte zur Behebung dieses Problems: - + ============== + A. Legen Sie das Speicherlimit in redis.conf in der 566-Zahlenzeile fest

566 maxmemory 256mb 567 maxmemory-policy allkeys-lru

B. Setzen Sie die Einstellung für den Overcommit-Speicher des Linux-Kernels auf 1:

$ sudo sysctl vm.overcommit_memory = 1

oder /etc/sysctl.conf und ändern Sie es in 1.

C. Starten Sie den Redis-Server jetzt neu.

$ systemctl restart redis

Bitte überprüfen Sie jetzt den Redis-Status.

Wenn das Problem weiterhin besteht, bearbeiten Sie die Servicedatei und bearbeiten Sie sie erneut.

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

Sie werden so sehen: -

[Einheit] Beschreibung = Redis In-Memory-Datenspeicher nach = network.target

[Service] Benutzer = root Gruppe = root ExecStart = / usr / local / bin / redis-server /etc/redis/redis.conf ExecStop = / usr / local / bin / redis-cli Herunterfahren Neustart = immer

Typ = Gabeln

[Installieren] WantedBy = multi-user.target

Ändern Sie es ExecStart = / usr / local / bin / redis-server /etc/redis/redis.conf

zu

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

Starten Sie jetzt den Redis-Dienst

$ systemctl start redis

Jetzt startet Redis ohne Fehler.

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

Testen der Redis: -

[root @ server] # redis-cli 127.0.0.1:6379> ping Verwenden Sie den Befehl echo, um eine bestimmte Zeichenfolge wiederzugeben: 127.0.0.1:6379> echo "Tecmint testet Redis" Sie können einen Schlüsselwert auch mit dem Befehl set festlegen wie folgt: 127.0.0.1:6379> set mykey "testet Redis" Jetzt den Wert von mykey anzeigen: 127.0.0.1:6379> get mykey "testet Redis" 127.0.0.1:6379> exit [root @ server] #

Jetzt wurde Redis erfolgreich gestartet und ausgeführt.

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

Danke und Grüße

Everdata-Technologien
quelle