Очевидно, у меня redis-server
запущен экземпляр, потому что когда я пытаюсь запустить новый сервер, введя redis-server
команду, я приветствую следующее:
Opening port: bind: Address already in use
Я не могу понять, как остановить этот сервер и запустить новый.
Есть ли какая-либо команда, к которой я могу добавить, redis-server
когда я набираю в CLI?
Моя ОС - Ubuntu 10.04.
redis-cli ping
. Работающий сервер Redis ответитPONG
.Ответы:
Либо подключитесь к экземпляру узла и используйте команду shutdown, либо, если вы используете Ubuntu, вы можете попытаться перезапустить сервер Redis через init.d:
или остановите / запустите это:
На Mac
источник
launchctl
это, а в других системахsystemctl
илиservice
.service redis-server stop
иservice redis-server start
, после установки его сapt-get install redis-server
.Более чистый и надежный способ - перейти в Redis-Cli, а затем набрать
shutdown
В Redis-Cli, введите,
help @server
и вы увидите это в нижней части списка:И если у вас есть экземпляр redis-сервера, работающий в терминале, вы увидите это:
источник
redis-cli shutdown
. (например, вы можете отправить любую такую командуredis-cli set cat dog; redis-cli get cat
)redis-cli set cat dog; redis-cli get cat
изменения вredis-cli -a mypassword set cat dog; redis-cli -a mypassword get cat
, что может раздражать после нескольких команд.alias redis-cli="redis-cli -a mypassword"
. Таким образом, вы можете совершать звонки, как в моем первоначальном комментарии, без необходимости повторного ввода пароля при каждом использовании.redis-cli shutdown
является наиболее эффективным. Принятый ответ не работает для меня (OSX Lion). Спасибо, @JesseBuesking.источник
redis-cli.exe shutdown
redis-cli --help
мог бы охватить этот случай.Для OSX я создал следующие псевдонимы для запуска и остановки
redis
(устанавливается вместе с Homebrew):Это отлично работает для местного развития!
Доморощенный теперь имеет,
homebrew-services
что может быть использовано для запуска, остановки и перезапуска служб. доморощенного-услугиbrew services
автоматически устанавливается при запуске.Если вы используете
run
, то он не запустится при входе в систему (ни при загрузке).start
запуститredis
сервис и добавит его при входе и загрузке.источник
brew services stop redis
также работает! :)Введите
SHUTDOWN
в CLIили
если вы не заботитесь о своих данных в памяти, вы можете также ввести
SHUTDOWN NOSAVE
принудительное завершение работы сервера.источник
Попробуй
killall redis-server
. Вы также можете использовать,ps aux
чтобы найти имя и pid вашего сервера, а затем убить его с помощьюkill -9 here_pid_number
.источник
Вариант 1: перейдите в каталог установки Redis и перейдите
src
, в моем случае:где 6379 - порт по умолчанию.
Вариант 2: найти процесс redis и убить
И тогда начните убивать:
Я использую Centos 6.7, x86_64
Надеюсь, поможет
источник
остановите тип сервера redis в терминале с пользователем root
сообщение будет отображаться после остановки редис-сервера
если вы хотите запустить тип сервера redis
если вы хотите перезагрузить тип сервера
источник
service --status-all
не будет показывать redis, следовательно, любаяservice
команда не будет выполненаredis-server
. Но Redis действительно показывает вps -ef
. Я просто не могу найти связанный документ.sudo service redis start/stop/status
делает то же самое, оба идут.Другой способ может быть:
Работает на * NIX & OSX
источник
MacOSX - это сработало :)
Шаг 1: Найдите ранее работающий Redis Server
Шаг 2. Завершите определенный процесс, найдя PID (идентификатор процесса) - Redis Sever
источник
Если вы знаете, на каком порту он будет работать (по умолчанию это будет 6379), вы можете использовать приведенную ниже команду, чтобы получить pid процесса, использующего этот порт, а затем выполнить команду kill для того же pid.
Приведенная выше команда даст вам pid.
убийство
<pid>
;Это отключит ваш сервер.
источник
systemd, Ubuntu 16.04:
источник
Обычно эта проблема возникает после того, как я нерегулярно выключаю свой компьютер (или оставляю работающим). Я считаю, что порт застревает открытым, в то время как процесс останавливается, но продолжает привязываться к предыдущему порту.
9/10 раз исправить можно:
Хорошо пойти.
источник
В моем случае это было:
Чтобы узнать, как называется ваша служба, вы можете запустить:
И он покажет вам все файлы Redis в вашей системе.
источник
если вы сделали make install (например, Ubuntu) во время установки Redis, то вы можете сделать:
как указано на @ yojimbo87 :)
источник
Другой способ может быть:
источник
Следующее работало у меня на MAC
источник
Если вы запускаете Redis в Docker-контейнере, ни один из настоящих ответов не поможет. Вы должны остановить контейнер Redis. В противном случае процесс повторного запуска будет возобновляться.
источник
Если вы знаете, на каком порту (по умолчанию: 6379) работает ваш сервер Redis, вы можете перейти с параметром 1 или проверить процесс Redis, и вы можете убить с помощью параметра 2.
вариант 1:
убить процесс на порту:
Вариант 2:
Найти ранее запущенный Redis Server:
Убить конкретный процесс, найдя PID (ID процесса) - Redis Sever
Теперь запустите ваш сервер Redis с
источник
Я не знаю конкретно для Redis, но для серверов в целом:
Какая ОС или дистрибутив? Часто будет команда stop или /etc/init.d / ..., которая сможет найти существующий pid в файле pid.
Вы можете посмотреть, какой процесс уже связан с портом
sudo netstat -nlpt
(параметры linux; другие варианты netstat могут отличаться) и подать сигнал на остановку. Я бы не использовалkill -9
на работающем сервере, если на самом деле нет другого сигнала или метода для его выключения.источник
Команды ниже работают для меня на Ubuntu Server
источник
В MacOSX
Это то, что сработало для меня
источник
Одна вещь, чтобы проверить, не работают ли команды redis для вас, состоит в том, действительно ли создается ваш redis-server.pid. Вы указываете место, где находится этот файл
и он должен иметь раздел, который выглядит примерно так:
Проверьте расположение и права доступа к каталогу PIDFile (в моем случае, «/ run / redis»). Я пытался перезапустить службу, вошедшую в систему как развертывание, но разрешения для каталога были указаны как
drwxrwsr-x 2 redis redis 40 Jul 20 17:37 redis
Если вам нужно освежить в Linux разрешения, проверьте это . Но проблема заключалась в том, что я выполнял перезапуск как мой пользователь развертывания, права доступа которого выше, rx, не позволяя моему пользователю писать в каталог PIDFile.
Как только я понял это, я вошел в систему, используя root, повторно выполнил команду restart на redis (
service redis restart
), и все заработало . Это была головная боль, но, надеюсь, это сэкономит кому-то немного времени.источник
Redis имеет параметр конфигурации
pidfile
(например, /etc/redis.conf - проверьте исходный код redis ), например:Если он установлен или может быть установлен, вместо поиска идентификатора процесса (pid) можно использовать
ps + grep
что-то вроде этого:При необходимости можно сделать скрипт остановки redis следующим образом (адаптированный скрипт redis 5.0 init.d по умолчанию в исходном коде redis ):
источник