411 votes

Comment puis-je arrêter redis-server ?

J'ai apparemment un redis-server instance en cours d'exécution car lorsque j'essaie de démarrer un nouveau serveur en entrant redis-server je suis accueilli par le message suivant :

Opening port: bind: Address already in use

Je n'arrive pas à trouver comment arrêter ce serveur et en démarrer un nouveau.

Y a-t-il une commande que je peux ajouter à redis-server quand je tape dans le CLI ?

Mon système d'exploitation est Ubuntu 10.04.

0 votes

Quel système d'exploitation et quelle distribution utilisez-vous ?

0 votes

Mesdames et Messieurs, si vous n'avez pas installé redis via le gestionnaire de paquets, et que vous l'avez installé à partir des sources, il se peut qu'il ne fonctionne pas avec systemv ou upstart ou systemd sur ubuntu. Ainsi, la réponse sélectionnée ne fonctionnera pas par défaut. La deuxième réponse, qui n'est pas marquée comme correcte, semble être plus fiable.

0 votes

Conseil : vérifier si un serveur Redis est en cours d'exécution peut être fait par l'intermédiaire de redis-cli ping . Un serveur Redis en fonctionnement répondra avec PONG .

696voto

yojimbo87 Points 27744

Soit vous vous connectez à l'instance du nœud et utilisez arrêt ou si vous êtes sur ubuntu vous pouvez essayer de redémarrer le serveur redis via init.d :

/etc/init.d/redis-server restart

ou l'arrêter/démarrer :

/etc/init.d/redis-server stop
/etc/init.d/redis-server start

Sur Mac

redis-cli shutdown

7 votes

Vous ne pouvez le faire que si vous configurez Redis de cette façon. La réponse de Kevin McTigue fonctionne avec une configuration minimale.

1 votes

Sous OS X, vous devrez probablement utiliser launchctl pour ce faire, et sur d'autres systèmes, systemctl o service .

1 votes

Sur certaines machines, sudo /etc/init.d/redis stop fonctionnera.

217voto

Kevin McTigue Points 1495

Une manière plus propre et plus fiable est d'aller dans redis-cli et ensuite de taper shutdown

Dans redis-cli, tapez help @server et vous verrez ceci près du bas de la liste :

SHUTDOWN - résumé : Sauvegarde synchrone de l'ensemble de données sur le disque et puis fermer le serveur depuis : 0.07

Et si vous avez une instance de redis-server en cours d'exécution dans un terminal, vous verrez ceci :

User requested shutdown...
[6716] 02 Aug 15:48:44 * Saving the final RDB snapshot before exiting.
[6716] 02 Aug 15:48:44 * DB saved on disk
[6716] 02 Aug 15:48:44 # Redis is now ready to exit, bye bye...

82 votes

Ou ne démarrez même pas redis-cli. Envoyez-le simplement depuis la ligne de commande via redis-cli shutdown . (vous pouvez envoyer n'importe quelle commande comme ceci, par exemple redis-cli set cat dog; redis-cli get cat )

7 votes

La seule réserve au commentaire de @jessebuesking est que si vous avez mis en place une protection par mot de passe, redis-cli set cat dog; redis-cli get cat les changements apportés à redis-cli -a mypassword set cat dog; redis-cli -a mypassword get cat ce qui peut être gênant après quelques commandes.

1 votes

@glarrain une chose que vous pourriez faire pour éviter la redondance est de définir un alias pour votre session bash actuelle, par exemple alias redis-cli="redis-cli -a mypassword" . De cette façon, vous pouvez passer les appels comme dans mon commentaire original sans avoir à réapprovisionner votre mot de passe à chaque utilisation.

154voto

Simple As Could Be Points 3906

redis-cli shutdown est le plus efficace. La réponse acceptée ne fonctionne pas pour moi (OSX Lion). Merci, @JesseBuesking.

0 votes

Oui, la réponse acceptée ne fonctionne que pour les systèmes Linux avec Redis configuré comme un service de la manière décrite.

3 votes

Cela fonctionne également sous Windows. redis-cli.exe shutdown

0 votes

Comme je l'ai dit plus haut, il est dommage que cette méthode (plutôt évidente) soit si difficile à trouver. Je m'attendais à ce que redis-cli --help aurait pu couvrir cette affaire.

51voto

thebigdog Points 411

Pour OSX, j'ai créé les alias suivants pour le démarrage et l'arrêt de l'application redis (installé avec Homebrew) :

alias redstart='redis-server /usr/local/etc/redis/6379.conf'
alias redstop='redis-cli -h 127.0.0.1 -p 6379 shutdown'

Cela a bien fonctionné pour le développement local !

Homebrew a maintenant homebrew-services qui peut être utilisé pour démarrer, arrêter et redémarrer des services. homebrew-services

brew services est automatiquement installé lors de son exécution.

brew services start|run redis 
brew services stop redis
brew services restart redis

Si vous utilisez run alors il ne le lancera pas à la connexion (ni au démarrage). start lancera le redis et l'ajouter à la connexion et au démarrage.

4 votes

Si vous avez installé redis en utilisant homebrew, brew services stop redis fonctionne aussi ! :)

0 votes

Je recommande d'utiliser services de brassage maintenant pour gérer le démarrage et l'arrêt pour les valeurs par défaut. Si vous avez besoin d'un peu plus de contrôle, il existe d'autres options.

1 votes

C'est la meilleure réponse car elle fonctionne sur toutes les versions de linux et mac, y compris celles installées à l'aide d'apt, yum, brew ou du téléchargement. Qu'ils aient des scripts upstart, init ou system d ou non. Merci

26voto

user1651082 Points 81

Type SHUTDOWN dans l'interface CLI

o

si vous ne vous souciez pas de vos données en mémoire, vous pouvez aussi taper SHUTDOWN NOSAVE pour forcer l'arrêt du serveur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X