Как остановить redis-сервер?
у меня, по-видимому, есть redis-server
экземпляр работает, потому что, когда я пытаюсь запустить новый сервер, введя redis-server
, Я встретил следующее:
Opening port: bind: Address already in use
Я не могу понять, как остановить этот сервер и начать новую.
есть ли какая-либо команда, которую я могу добавить к redis-server
когда я набираю CLI?
моя ОС-Ubuntu 10.04.
19 ответов
либо подключиться к экземпляру узла и использовать остановка команда или если вы находитесь на ubuntu, вы можете попытаться перезапустить сервер redis через init.д:
/etc/init.d/redis-server restart
или "стоп/старт" это:
/etc/init.d/redis-server stop
/etc/init.d/redis-server start
На Mac
redis-cli shutdown
более чистый, более надежный способ-войти в redis-cli, а затем введите shutdown
в redis-cli введите help @server
и вы увидите это в нижней части списка:
SHUTDOWN-summary: синхронно сохраните набор данных на диск, а затем завершите работу сервера с: 0.07
и если у вас есть экземпляр redis-сервера, работающий в терминале, вы увидите следующее:
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...
redis-cli shutdown
наиболее эффективна. Принятый ответ не работает для меня (OSX Lion). Спасибо, @JesseBuesking.
для osx я создал следующие псевдонимы для запуска и остановки redis (redis установлен с homebrew):
alias redstart='redis-server /usr/local/etc/redis/6379.conf'
alias redstop='redis-cli -h 127.0.0.1 -p 6379 shutdown'
это отлично сработало для меня для местного развития.
тип SHUTDOWN
в CLI
или
Если вы не заботитесь о своих данных в памяти, вы также можете ввести SHUTDOWN NOSAVE
принудительное завершение работы сервера.
попробовать killall redis-server
. Вы также можете использовать ps aux
найти имя и PID вашего сервера, а затем убить его с kill -9 here_pid_number
.
Вариант 1: Перейдите в каталог установки redis и перейдите к src
в моем случае :
/opt/redis3/src/redis-cli -p 6379 shutdown
где 6379-порт по умолчанию.
Вариант 2: Найти процесс redis и убить
ps aux | grep redis-server
t6b3fg 22292 0.0 0.0 106360 1588 pts/0 S+ 01:19 0:00 /bin/sh /sbin/service redis start
t6b3fg 22299 0.0 0.0 11340 1200 pts/0 S+ 01:19 0:00 /bin/sh /etc/init.d/redis start
и затем инициировать убийство:
kill -9 22292
kill -9 22299
Я использую Centos 6.7, x86_64
надеюсь, что это помогает
другой способ может быть:
ps -ef | grep -i 'redis-server'
kill -9 PID owned by redis
работает на *NIX & OSX
MacOSX-Это Сработало:)
Шаг 1: Найдите ранее запущенный сервер Redis
ps auxx | grep redis-server
Шаг 2: убейте конкретный процесс, найдя PID (идентификатор процесса) - Redis Sever
kill -9 PID
остановите тип сервера redis в терминале с пользователем root
sudo service redis-server stop
сообщение будет отображаться после остановки Redis-сервера
Stopping redis-server: redis-server.
если вы хотите запустить тип redis-сервера
sudo service redis-server start
если вы хотите перезапустить тип сервера
sudo service redis-server restart
Если вы знаете, на каком порту он будет работать (по умолчанию это будет 6379), вы можете использовать команду ниже, чтобы получить pid процесса, используя этот порт, а затем можете выполнить команду kill для того же pid.
sudo lsof -i : <port> | awk '{print }'
приведенная выше команда даст вам pid.
убить <pid>
;
это выключит ваш сервер.
в моем случае это было:
/etc/init.d/redismaster stop
/etc/init.d/redismaster start
чтобы узнать, каково ваше имя службы, вы можете запустить:
sudo updatedb
locate redis
и он покажет вам все файлы Redis в вашей системе.
systemd в, в Ubuntu 16.04:
$ sudo systemctl is-active redis-server
active
$ sudo systemctl is-enabled redis-server
enabled
$ sudo systemctl disable redis-server
Synchronizing state of redis-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable redis-server
Removed /etc/systemd/system/redis.service.
$ sudo systemctl stop redis-server
обычно эта проблема возникает после того, как я выключил свой компьютер ( или оставил работать ) нерегулярным способом.. Я считаю, что порт застревает открытым, в то время как процесс останавливается, но продолжает привязываться к предыдущему порту.
9/10 раз исправление может быть:
$ ps aux | grep redis
-> MyUser 2976 0.0 0.0 2459704 320 ?? S Wed01PM 0:29.94 redis-server *:6379
$ kill 2976
$ redis-server
хорошо идти.
Я не знаю специально для redis, но для серверов в целом:
какая ОС или дистрибутив? Часто будет остановка или / etc / init.д./.. команда, которая сможет найти существующий pid в файле pid.
вы можете посмотреть, какой процесс уже привязан к порту с помощью sudo netstat -nlpt
(параметры linux; другие ароматы netstat будут отличаться) и сигнализировать ему остановиться. Я бы не использовать kill -9
на работающем сервере, если на самом деле нет другого сигнала или способ, чтобы закрыть его.
приведенные ниже команды работают для меня на Ubuntu Сервер
$ service /etc/init.d/redis_6379 stop
$ service /etc/init.d/redis_6379 start
$ service /etc/init.d/redis_6379 restart
На MacOSX,
Это то, что сработало для меня
/etc/init.d/redis restart
/etc/init.d/redis stop
/etc/init.d/redis start
одна вещь, чтобы проверить, если команды redis не работают для вас, если ваш redis-сервер.pid фактически создается. Вы указываете местоположение, где находится этот файл в
/etc/systemd/system/redis.service
и он должен иметь раздел, который выглядит примерно так:
[Service]
Type=forking
User=redis
Group=redis
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
PIDFile=/run/redis/redis-server.pid
TimeoutStopSec=0
Restart=always
Проверьте местоположение и разрешения каталога PIDFile (в моем случае '/run/redis'). Я пытался перезапустить службу, вошедшую в систему как deploy, но разрешения каталога были перечислены как
drwxrwsr-x 2 redis redis 40 Jul 20 17:37 redis
Если вам нужно обновить разрешения linux,зацените. Но проблема заключалась в том, что я выполнял перезапуск как мой пользователь развертывания, разрешения которого выше r-x, не позволяя моему пользователю писать в каталог PIDFile.
как только я понял, что, я вошел в систему с помощью root, повторите команду перезапуска на redis (service redis restart
) и все работало. Это была головная боль, но, надеюсь, это сэкономит кому-то немного времени.