16.04.01 LTS sur AWS - Redis ne fonctionne plus


10

Nous avons exécuté redis-server sur un certain nombre d'instances AWS EC2 Ubuntu (14.04.4 LTS) sans aucun problème. J'ai créé un serveur de test pour essayer la mise à niveau vers Ubuntu 16.04.1 LTS, et maintenant redis ne fonctionnera pas.

Si j'essaie de démarrer redis manuellement, j'obtiens ceci:

~$ 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.

Informations sur l'erreur:

~$ 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.

J'ai essayé ce qui suit:

  • redémarré le serveur
  • exécutez notre script de déploiement, qui comprend un redémarrage redis
  • utilisé sudo apt-getpour désinstaller et réinstaller redis-server
  • fait l'installation deux fois, une fois en acceptant le nouveau /etc/redis/redis.conffichier du paquet, et une fois en gardant notre fichier d'origine

Aucune suggestion?


pas une réponse, mais pourrait aider: vous pouvez exécuter redis en tant que conteneur Docker.
pLumo

Réponses:


5

J'ai installé redis en utilisant apt-get install redis-server

Le problème pour moi: les tutoriels que j'ai trouvé par exemple. l'autre réponse à cette question suppose que les binaires redis sont situés dans /usr/local/bin.

Sur mon installation, ils sont situés dans /usr/binun correctif qui change /etc/systemd/system/redis.servicepour refléter cela.

À ce stade, je peux démarrer /usr/bin/redis-server /etc/redis/redis.conf manuellement et exécuter avec succès sudo systemctl start redis.

Donc, ce que vous devez faire pour que Redis fonctionne sur 16.04 est:

  1. Assurez-vous que vous avez installé en utilisant apt-get install redis-server, ne téléchargez pas le tar, puis faites et installez.
  2. Créez ou modifiez le service redis en exécutant sudo vi /etc/systemd/system/redis.service
  3. Modifiez-le pour ressembler à ceci, puis enregistrez:
[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. Quittez vi pour bash. Vous devriez pouvoir démarrer le service maintenant avecsudo systemctl start redis
  2. Si le point 4 ne fonctionne pas, vous pouvez probablement au moins le démarrer manuellement en exécutant sudo /usr/bin/redis-server /etc/redis/redis.conf.

La partie importante que je devais modifier était de m'assurer que

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

ExecStop = / usr / bin / redis-cli shutdown

lignes ne pointaient pas vers usr/local/bin/foo- besoin de supprimer le/local


1

J'ai eu le même problème mais la cause était différente.

J'ai utilisé redis pour tester sur une machine virtuelle avec un client DHCP.

La configuration /etc/redis/redis.confpointait sur la mauvaise (ancienne) IP locale et ne pouvait donc pas lier le service à la nouvelle IP attribuée par DHCP.

Voici le journal de ce problème:

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.

0

Essayez peut-être cela, voici une configuration de travail pour /lib/systemd/system/redis.servicevoir si cela fonctionne pour vous.

[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

Vérifiez ensuite le fichier journal spécifié dans la configuration /etc/redis/redis.confpour vous assurer que vous disposez des autorisations appropriées.


0

Si vous utilisez Ubuntu, vous devriez avoir supervised systemden /etc/redis/redis.conf.


0

Ouvrez votre terminal et exécutez la commande ifconfig puis vous obtiendrez votre adresse IP comme 192.168.0.109 puis éditez votre configuration en exécutant la commande sudo nano /etc/redis/redis.conf ici nano est un éditeur. Vous pouvez utiliser n'importe quel autre éditeur comme vous le souhaitez, puis rechercher la liaison et mettre votre adresse IP comme

lier 127.0.0.1 192.168.0.109 ici mon ip est 192.168.0.109 puis redémarrer votre serveur par cette commande sudo systemctl redémarrer redis.service vérifier l'état de votre serveur sudo systemctl status redis puis vous le trouverez actif

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.