Подтвердить что ты не робот

Остановите сервер redis. Ни остановка, ни остановка

Я хочу остановить сервер redis, и он просто продолжает идти и уходить. Я использую redis-2.6.7

Убедитесь, что он запущен:

redis-server

В нем говорится: "... bind: Address уже используется", поэтому он уже запущен.

Я пробовал

redis-cli
redis 127.0.0.1:6379> shutdown

Он просто висит и ничего не происходит. Я выхожу и проверяю, да, он все еще работает.

Я пробовал

redis-server stop

Я получаю "невозможно открыть файл конфигурации" stop "

Я пробовал:

killall redis-server

Все еще работает.

Причина, по которой я хочу остановить ее, заключается в том, что она просто висит, когда я пытаюсь установить или получить значение через Python. Поэтому я подумал, что я перезапущу его.

EDIT:

Никакие команды не работают из redis-cli. Я также попробовал INFO, и он просто зависает.

4b9b3361

Ответ 1

Наконец-то я понял.

Получить PID процесса (это работает в Webfaction):

ps -u my_account -o pid,rss,command | grep redis

Тогда

> kill -9 the_pid

Я смог опубликовать эту проблему:

Start redis-server
Then break it using Pause/Break key

Теперь он зависает, и он не будет нормально закрываться. Также программа Python пытается установить/получить ключ. Чтобы этого избежать: просто закройте окно после запуска redis-сервера. Теперь он работает нормально.

Ответ 2

Выключение сервера Redis $ redis-cli -a password -p 6379 shutdown

Запустить сервер Redis $ sudo service redis_6379 start

Он работает на сервере Ubuntu 14.04 x86 Redis v2.8.15.

Ответ 3

Обычный способ сделать это - подключиться к клиенту, например redis-cli, и выполнить команду "shutdown". Я обнаружил некоторые проблемы, пытающиеся завершить работу, потому что redis-server не имеет прав для редактирования файла db dump (RDB) до выхода. Затем redis остается запущенным, и вам нужно убить процесс с помощью kill -9 pid. Но это не проблема redis, как вы знаете.

Пример этой проблемы:

# User requested shutdown...
[16560] 10 Sep 11:21:17.672 * Saving the final RDB snapshot before exiting.
[16560] 10 Sep 11:21:17.672 # Failed opening .rdb for saving: Permission denied
[16560] 10 Sep 11:21:17.672 # Error trying to save the DB, can't exit.

Ответ 4

Я больше не могу воспроизвести проблему, но shutdown NOSAVE помог мне, когда я играл с redis и не мог заставить его отключиться:

redis-cli
127.0.0.1:6379> shutdown
(error) ERR Errors trying to SHUTDOWN. Check logs.
127.0.0.1:6379> shutdown NOSAVE
not connected>

Ответ 5

Я думаю, что команда shutdown может завершить работу сервера redis. Может быть, странно, после ввода команды shutdown redis-cli не выходит. Между тем сервер отключился.

Ответ 6

Это, возможно, действительно важная нота для некоторых людей, читающих это. Если ваш redis, похоже, не реагирует на выключение. ПРОВЕРЬТЕ ЛОГИКИ.

Они могут сказать что-то вроде этого:

Apr 24 00:48:54 redis[828]: Received SIGTERM, scheduling shutdown...
Apr 24 00:48:54 redis[828]: User requested shutdown, saving DB...
Apr 24 00:55:37 redis[828]: DB saved on disk

Может быть, ваша БД несколько GB или десятки GB, и в этом случае потребуется время для выключения. Если вместо этого вы хотите очистить все ключи, есть лучший способ сделать это, чем выключение. FLUSHALL

Ответ 8

При настройке сервера требуется авторизация...

При запуске и завершении redis script используется redis-cli, что означает, что выключение не произойдет без авторизации, и сервер будет висеть в цикле, ожидая, что redis будет завершен, что никогда не произойдет без auth.

Итак, при выключении script вам нужно изменить

$CLIEXEC -p $REDISPORT shutdown

к

$CLIEXEC -a 'authpassword' -p $REDISPORT shutdown

чтобы ваш сервис redis отключился без проблем.

Ответ 9

Вы используете следующую команду, чтобы убить выполняемый процесс redis-server.

ps aux |grep redis

Здесь перечислены все запущенные процессы для redis-сервера. Затем вы можете использовать следующую команду для уничтожения процессов redis

sudo kill <pid for redis>

образец здесь

sudo kill 7229 //for the above sample.

Ответ 10

Лучший способ проверить pid порта redis:

lsof -i:<redis-port>

для порта по умолчанию redis

lsof -i:6379

kill -9 <pid>

Ответ 11

start redis: $REDIS_HOME/src/redis-server
stop redis: $REDIS_HOME/src/redis-cli shutdown

$REDIS_HOME, где вы установили/извлекли redis.

Ответ 12

на redis-cli будет работать команда "shutdown SAVE" или "shutdown NOSAVE".

Ответ 13

Вы можете просто:

redis-cli shutdown