Вопрос или проблема
Я пытаюсь установить redis, согласно инструкциям здесь: https://redis.io/download, но получаю ошибку:
Создание сокета TCP сервера для прослушивания *:6379: привязка: адрес уже используется
Когда я выполняю команду ps -ef|grep redis
, я вижу:
nomi 1168 947 0 2434 ? 00:00:00 grep --color=auto redis
Я ввожу kill 1168
, где 1168 — это мой PID, и процесс не убивается:
“bash: kill: (1168) – Нет такого процесса”
В следующий раз, когда я запускаю команду ps -ef|grep redis
, я получаю другой номер PID, например: 1170
Как мне удалить этот процесс?
У меня была такая же проблема, но я забыл, что redis сохраняется. Если вы получаете эту ошибку, попробуйте эту команду:
redis-cli ping
И это решило мою проблему:
[root@tannetto tannetto]# ps -ef |grep redis
root 4871 4836 0 11:07 pts/0 00:00:00 grep redis
redis 4995 1 0 Июн23 ? 04:21:50 /usr/bin/redis-server *:6379
После нахождения redis выполните kill -9
!
[root@tannetto tannetto]# kill -9 4995
[root@tannetto tannetto]# service redis restart
Остановка redis-server: [ OK ]
Запуск redis-server: [ OK ]
[root@tannetto tannetto]# service redis status
redis-server (pid 4919) работает...
sudo service redis-server stop
Я долго боролся с этой ошибкой на обеих версиях ubuntu 24 и 22, и это решило проблему
sudo service redis-server stop
redis-server
.
Ответ или решение
Ошибка при запуске Redis-сервера: "Адрес уже используется"
Если вы столкнулись с ошибкой при попытке запустить сервер Redis, который сообщает "Создание сокета TCP для прослушивания *:6379: bind: Адрес уже используется", это свидетельствует о том, что порт 6379, на который вы пытаетесь запустить Redis, уже занят другим процессом. В этой статье мы подробно рассмотрим решение данной проблемы.
1. Проверка занятости порта
Первым шагом необходимо установить, какой процесс использует порт 6379. Вы можете сделать это с помощью следующей команды в терминале:
sudo lsof -i :6379
Эта команда выведет список процессов, которые используют указанный порт. Вы увидите информацию о PID (идентификаторе процесса), пользователе и других деталях.
2. Изучение работающих процессов
После идентификации процесса, который занимает порт, вы можете использовать команду:
ps -ef | grep redis
Для проверки запущенных процессов Redis. Если вы не видите процессов Redis, это может означать, что его запуск произошёл неправильно или завершился аварийно.
3. Завершение процесса
Если вы видите работающий процесс, который использует порт 6379, вам нужно его завершить. Например, если PID процесса равен 4995, выполните:
sudo kill -9 4995
Использование флага -9
отправляет сигнал SIGKILL, который принудительно завершает процесс. Будьте осторожны, так как это может привести к потерям данных, если процесс выполняет запись.
4. Перезапуск Redis
После завершения процесса вы можете попробовать снова запустить сервер Redis. Для этого можно использовать следующую команду:
sudo service redis-server start
Если вы хотите остановить Redis перед запуском, выполните:
sudo service redis-server stop
5. Проверка состояния
Чтобы убедиться, что Redis запущен корректно, выполните команду:
sudo service redis-server status
Эта команда покажет, активен ли сервер, и выведет соответствующий PID.
Заключение
Не забывайте, что Redis может сохранять данные, и если сервер был запущен ранее, он может загружать их при старте. Важно следить за состоянием процессов и своевременно их управлять, чтобы избежать конфликтов на порту. С помощью вышеперечисленных шагов вы сможете устранить ошибку "Адрес уже используется" и успешно запустить сервер Redis. Если возникнут дополнительные вопросы или сложности, обратитесь к документации Redis или в сообщество для получения дополнительной поддержки.