J'ai apparemment une 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 les éléments suivants:
Opening port: bind: Address already in use
Je n'arrive pas à comprendre comment arrêter ce serveur et en démarrer un nouveau.
Y a-t-il une commande à laquelle je peux ajouter redis-server
lorsque je tape dans la CLI?
Mon système d'exploitation est Ubuntu 10.04.
redis-cli ping
. Un serveur Redis en cours d'exécution répondra parPONG
.Réponses:
Connectez-vous à l'instance de nœud et utilisez la commande d' arrêt ou si vous êtes sur ubuntu, vous pouvez essayer de redémarrer le serveur redis via init.d:
ou l'arrêter / démarrer:
Sur Mac
la source
launchctl
pour ce faire, et sur d'autres systèmes,systemctl
ouservice
.service redis-server stop
etservice redis-server start
, après l'avoir installé avecapt-get install redis-server
.Un moyen plus propre et plus fiable consiste à entrer dans redis-cli puis à taper
shutdown
Dans redis-cli, tapez
help @server
et vous verrez ceci vers le bas de la liste:Et si vous avez une instance de redis-server en cours d'exécution dans un terminal, vous verrez ceci:
la source
redis-cli shutdown
. (vous pouvez envoyer n'importe quelle commande comme celle-ci, par exempleredis-cli set cat dog; redis-cli get cat
)redis-cli set cat dog; redis-cli get cat
modifications apportées àredis-cli -a mypassword set cat dog; redis-cli -a mypassword get cat
, ce qui peut être ennuyeux après quelques commandes.alias redis-cli="redis-cli -a mypassword"
. De cette façon, vous pouvez effectuer les appels comme dans mon commentaire d'origine sans avoir à ressaisir votre mot de passe à chaque utilisation.redis-cli shutdown
est le plus efficace. La réponse acceptée ne fonctionne pas pour moi (OSX Lion). Merci, @JesseBuesking.la source
redis-cli.exe shutdown
redis-cli --help
aurait pu couvrir cette affaire.Pour OSX, j'ai créé les alias suivants pour démarrer et arrêter
redis
(installé avec Homebrew):Cela a très bien fonctionné pour le développement local!
Homebrew a maintenant
homebrew-services
qui peut être utilisé pour démarrer, arrêter et redémarrer les services. homebrew-servicesbrew services
est automatiquement installé lors de l'exécution.Si vous utilisez
run
, il ne démarrera pas lors de la connexion (ni au démarrage).start
démarre leredis
service et l'ajoute lors de la connexion et du démarrage.la source
brew services stop redis
marche aussi! :)Tapez
SHUTDOWN
le CLIou
si vous ne vous souciez pas de vos données en mémoire, vous pouvez également taper
SHUTDOWN NOSAVE
pour forcer l'arrêt du serveur.la source
Essayez
killall redis-server
. Vous pouvez également utiliserps aux
pour trouver le nom et le pid de votre serveur, puis le tuer aveckill -9 here_pid_number
.la source
Option 1: accédez au répertoire d'installation de redis et accédez
src
, dans mon cas:où 6379 est le port par défaut.
Option 2: trouver le processus redis et tuer
Et ensuite lancer la mise à mort:
J'utilise Centos 6.7, x86_64
J'espère que ça aide
la source
arrêter le type de serveur redis dans le terminal avec l'utilisateur root
le message sera affiché après l'arrêt du serveur redis
si vous voulez démarrer le type de serveur redis
si vous souhaitez redémarrer le type de serveur
la source
service --status-all
ne montrera pas redis, donc touteservice
commande échoueraredis-server
. Mais redis apparaîtps -ef
. Je ne trouve tout simplement aucun document connexe.sudo service redis start/stop/status
fait de même, les deux vont.Une autre façon pourrait être:
Fonctionne sur * NIX & OSX
la source
MacOSX - Cela a fonctionné :)
Étape 1: rechercher le serveur Redis précédemment exécuté
Étape 2: tuer le processus spécifique en trouvant le PID (ID de processus) - Redis Sever
la source
Si vous savez sur quel port il serait exécuté (par défaut, ce serait 6379), vous pouvez utiliser la commande ci-dessous pour obtenir le pid du processus utilisant ce port, puis exécuter la commande kill pour le même pid.
la commande ci-dessus vous donnera pid.
tuer
<pid>
;Cela arrêterait votre serveur.
la source
systemd, ubuntu 16.04:
la source
Habituellement, ce problème survient après avoir éteint mon ordinateur (ou laissé fonctionner) de manière irrégulière. Je crois que le port reste bloqué ouvert, tandis que le processus s'arrête mais continue d'être lié au port précédent.
9/10 fois le correctif peut être:
C'est bon.
la source
Dans mon cas, c'était:
Pour connaître le nom de votre service, vous pouvez exécuter:
Et il vous montrera tous les fichiers Redis de votre système.
la source
si vous avez fait installer (par exemple ubuntu) lors de l'installation de redis, vous pouvez faire:
comme l'a souligné @ yojimbo87 :)
la source
Une autre façon pourrait être:
la source
La suite a fonctionné pour moi sur MAC
la source
Si vous exécutez redis dans un conteneur Docker, aucune des réponses actuelles n'aidera. Vous devez arrêter le conteneur redis. Sinon, le processus redis continuera de réapparaître.
la source
Si vous savez sur quel port (par défaut: 6379) votre serveur redis fonctionne, vous pouvez aller avec l' option 1 ou vous pouvez vérifier votre processus redis et vous pouvez tuer avec l' option 2
option 1:
tuer le processus sur le port:
option 2:
recherchez le serveur Redis précédemment exécuté:
Tuez le processus spécifique en trouvant le PID (ID de processus) - Redis Sever
Démarrez maintenant votre serveur redis avec
la source
Je ne sais pas spécifiquement pour redis, mais pour les serveurs en général:
Quel OS ou distribution? Souvent, il y aura une commande stop ou /etc/init.d / ... qui pourra rechercher le pid existant dans un fichier pid.
Vous pouvez rechercher quel processus est déjà lié au port avec
sudo netstat -nlpt
(options linux; les autres versions de netstat varieront) et lui signaler de s'arrêter. Je ne l' utiliserais paskill -9
sur un serveur en cours d'exécution à moins qu'il n'y ait vraiment aucun autre signal ou méthode pour l'arrêter.la source
Les commandes ci-dessous fonctionnent pour moi sur Ubuntu Server
la source
Sur MacOSX,
C'est ce qui a fonctionné pour moi
la source
Une chose à vérifier si les commandes redis ne fonctionnent pas pour vous est de savoir si votre redis-server.pid est réellement en cours de création. Vous spécifiez l'emplacement de l'emplacement de ce fichier
et il devrait avoir une section qui ressemble à ceci:
Vérifiez l'emplacement et les autorisations du répertoire PIDFile (dans mon cas, '/ run / redis'). J'essayais de redémarrer le service connecté en tant que déploiement mais les autorisations de répertoire étaient répertoriées comme
drwxrwsr-x 2 redis redis 40 Jul 20 17:37 redis
Si vous avez besoin d'une mise à jour sur les autorisations Linux, vérifiez cela . Mais le problème était que j'exécutais le redémarrage en tant qu'utilisateur de déploiement dont les autorisations ci-dessus sont rx, ne permettant pas à mon utilisateur d'écrire dans le répertoire PIDFile.
Une fois que j'ai réalisé cela, je me suis connecté en utilisant root, relancez la commande de redémarrage sur le redis (
service redis restart
) et tout a fonctionné. C'était un casse-tête mais j'espère que cela fait gagner un peu de temps à quelqu'un.la source
Redis a un paramètre de configuration
pidfile
(par exemple /etc/redis.conf - vérifiez le code source de redis ), par exemple:Si elle est définie ou pourrait l'être, au lieu de rechercher l'ID de processus (pid) en utilisant
ps + grep
quelque chose comme ceci, vous pouvez utiliser:Si nécessaire, on peut faire un script d'arrêt redis comme ceci ( script d'init.d redis 5.0 par défaut adapté dans le code source de redis ):
la source