127.0.0.1:6379에서 Redis에 연결할 수 없음 : 홈브류로 연결이 거부되었습니다.


120

homebrew를 사용하여 Redis를 설치하지만 Redis를 ping하려고하면 다음 오류가 표시됩니다.

Could not connect to Redis at 127.0.0.1:6379: Connection refused

참고 : 방화벽을 끄고 conf 파일을 편집하려고했지만 여전히 ping을 할 수 없습니다. macOS Sierra 및 Homebrew 버전 1.1.11을 사용하고 있습니다.

답변:


281

설치 후 다음을 redis입력하십시오 terminal.

redis-server

그리고 Redis-Server가 시작됩니다


1
그러나 해당 포트 / 호스트를 수신하지 못하게하려면 어떻게해야합니까?
Afolabi Olaoluwa Akinwumi

@AfolabiOlaoluwaAkinwumi은 참조하시기 바랍니다 내가 레디 스 서버를 중지 할 수 있습니다 방법
루피

3
명령 프롬프트에서 Windows의 cd C:\Program Files\Redis경우 redis-server
Pradeep Kumar Prabaharan

2
redis-server를 백그라운드에서 계속 실행하는 방법, 저는 ubuntu @LuFFy를 사용하고 있습니다
AATHITH RAJENDRAN

1
@AATHITHRAJENDRAN는 확인 이 대답을 , 나는 그것이 도움이되기를 바랍니다
루피

37

을 통해 시작한 후 redis에 연결할 수없는 이유를 파악하는 동안이 질문을 발견했습니다 brew services start redis.

tl; dr

머신 또는 설치가 얼마나 최신인지에 따라 redis 기본값에 대한 구성 파일 또는 디렉토리가 누락 될 수 있습니다.

  1. 에서 구성 파일이 필요합니다 /usr/local/etc/redis.conf. 이 파일 redis-server이 없으면 시작되지 않습니다. 기본 구성 파일을 복사하고 여기에서 수정할 수 있습니다.

    cp /usr/local/etc/redis.conf.default /usr/local/etc/redis.conf
    
  2. 당신은 /usr/local/var/db/redis/존재 해야 합니다. 쉽게 할 수 있습니다.

    mkdir -p /usr/local/var/db/redis
    

마지막으로 brew services restart redis.

이걸 어떻게 알아!?

redis가 homebrew를 통해 기본값을 사용하지 않는지, 어떤 포트가 켜져 있는지 알아 내려고 많은 시간을 낭비했습니다. 서비스는 redis-server실제로 시작되지 않았지만 brew services list여전히 redis가 "시작됨"으로 표시 되기 때문에 오해의 소지 가있었습니다 . 가장 좋은 방법은 brew services --verbose start redis로그 파일이에 있음을 보여주는 방법을 사용 하는 것 /usr/local/var/log/redis.log입니다. 거기에서 나는 담배 총을 발견했습니다

Fatal error, can't open config file '/usr/local/etc/redis.conf'

또는

Can't chdir to '/usr/local/var/db/redis/': No such file or directory

고맙게도 로그는 위의 솔루션을 분명하게 만들었습니다.

그냥 뛰면 안 redis-server돼?

당신은 확실히 할 수 있습니다. 을 실행하면 터미널을 차지하거나 때때로 터미널을 중단합니다 redis-server &. 또한 dump.rdb( pwd) 에서 실행하는 디렉토리에 저장 됩니다 . 파일을 제거하거나 git에서 무시해야하는 불편 함이있어서 brew가 서비스 작업을 수행하도록 할 것이라고 생각했습니다.


감사합니다, 이것은 내가 abstractconnection.php 라인 155에서 연결이 거부되는 laravel 프로젝트에서 내 문제를 해결했습니다
luckyguy73

abstractconnection.php 라인 155에서도 오류가 발생했습니다! 미친.
Kevin Gagnon

장황한 것으로 시작하여 나를 위해 일했습니다. redis.conf에서 문제가 발생했습니다. 감사합니다
SangamAngre

18

설치 후 redis항상 실행해야하는 경우 터미널을 입력하십시오.

redis-server &

Ubuntu에서 upstart를 사용하여 redis 실행

우분투에서 처음부터 시스템을 설정하는 방법을 이해하려고 노력했습니다. 방금 설치했습니다redis 상자에 했는데 여기에 제가 어떻게했는지와 몇 가지주의 할 사항이 있습니다.

설치하기 위해서:

sudo apt-get install redis-server

그러면 redis사용자 가 생성 되고 init.d스크립트가 설치 됩니다. upstart이제 init.d를 사용하는 대체품 이므로 다음을 사용하여 실행하도록 변환해야한다고 생각합니다.upstart .

에 대한 기본 init.d스크립트 를 비활성화하려면 redis:

sudo update-rc.d redis-server disable

그런 /etc/init/redis-server.conf다음 다음 스크립트로 만듭니다 .

description "redis server"

start on runlevel [23]
stop on shutdown

exec sudo -u redis /usr/bin/redis-server /etc/redis/redis.conf

respawn

upstart프로세스를 시작하기 위해 실행할 명령을 알기 위한 스크립트입니다 . 마지막 줄은 또한 알려줍니다upstart 죽으면 리스폰을 계속 시도하도록 합니다.

내가 변화했다 한 가지 /etc/redis/redis.conf입니다 daemonize yesdaemonize no. 변경하지 않으면 어떤 일이 발생하면 redis-server스스로 포크하고 데몬 화하고 부모 프로세스는 사라집니다. 이런 일이 발생 upstart하면 프로세스가 종료 / 중지되었으며 내부에서 프로세스를 제어 할 수 없다고 생각 upstart합니다.

이제 다음 명령을 사용하여을 제어 할 수 있습니다 redis-server.

sudo start redis-server
sudo restart redis-server
sudo stop redis-server

도움이 되었기를 바랍니다.


9

redis에 연결하는 더 좋은 방법입니다.

먼저 redis 서버의 IP 주소를 이와 같이 확인하십시오.

ps -ef | grep redis

결과는 "redis 1184 1 0 .... / usr / bin / redis-server 172.xxx:6379

그런 다음 이와 같이 -h (hostname) 옵션을 사용하여 redis에 연결할 수 있습니다.

redis-cli -h 172.xxx


2

제 경우에는.와 같은 문자가 포함 된 비밀번호였습니다. '변경 후 서버가 문제없이 시작되었습니다.


1

내 구성 파일에서 부적절한 구문을 사용했기 때문에 동일한 문제가 발생했습니다. 추가하려고했습니다.

maxmemory-policy allkeys-lru

내 구성 파일에 추가했지만 대신 다음을 추가했습니다.

allkeys-lru

이로 인해 Redis가 구성 파일을 구문 분석하지 못하여 cli를 통해 연결하지 못했습니다. 이 구문을 수정하여 Redis에 연결할 수있었습니다.


1

문제와 homebrew MacOS관련된 문제가 /usr/local/var/log디렉토리에서 누락 된 일종의 권한 이었다면 여기에서 문제를 참조하십시오.

이를 해결하기 위해 /usr/local/var/logredis를 삭제 하고 다시 설치했습니다.brew reinstall redis


1

먼저 모든 conf 파일에 대해 하나씩 아래 명령을 사용하여 모든 redis 노드를 시작 / 시작해야합니다. @ 참고 : 클러스터를 설정하는 경우 6 개의 노드가 있어야하며 3 개는 마스터, 3 개는 슬레이브입니다. redis-cli는 아래 명령과 같이 --cluster 명령을 사용하여 6 개 노드 중 마스터와 슬레이브를 자동으로 선택합니다. .

[xxxxx@localhost redis-stable]$ redis-server xxxx.conf 

그런 다음 실행

[xxxxx@localhost redis-stable]$ redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1

위의 출력은 다음과 같아야합니다.

    >>> Performing hash slots allocation on 6 nodes...

모든 것을 자동으로 설정하는 두 번째 방법 : utils / create-cluster 스크립트를 사용하여 모든 노드를 시작하는 것과 같은 모든 것을 설정할 수 있습니다. https://redis.io/topics/cluster-tutorial을 따르십시오.

감사


1

이것은 나를 위해 일합니다.

sudo service redis-server start

1

Aaron 과 마찬가지로 내 경우에는 brew services listredis가 실행 중이라고 주장했지만 그렇지 않았습니다. 내 로그 파일에서 다음 정보를 찾았습니다 /usr/local/var/log/redis.log.

4469:C 28 Feb 09:03:56.197 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
4469:C 28 Feb 09:03:56.197 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=4469, just started
4469:C 28 Feb 09:03:56.197 # Configuration loaded
4469:M 28 Feb 09:03:56.198 * Increased maximum number of open files to 10032 (it was originally set to 256).
4469:M 28 Feb 09:03:56.199 # Creating Server TCP listening socket 192.168.161.1:6379: bind: Can't assign requested address

이는 다음 구성으로 인해 발생하는 것으로 밝혀졌습니다.

bind 127.0.0.1 ::1 192.168.161.1

내 VMWare Fusion 가상 머신에 호스트 인 macOS의 redis 서버에 대한 액세스 권한을 부여하는 데 필요했습니다. 가상 컴퓨터가 시작되지 않은 경우,이 바인딩 실패는 시작하지 레디 스를 발생 전혀 . 따라서 가상 머신을 시작하면 문제가 해결되었습니다.


1

이 시도 :

sudo service redis-server restart

Windows WSL Ubuntu를 사용하고 있으며 터미널에서 계속 오류가 발생합니다. npm 오류! 코드 ELIFECYCLE npm ERR! errno 1 그래서 모든 것을 맨 위에 시도했지만 Windows에서는 특히 작동하지 않습니다. 그래서 우분투에서 redis 서비스를 다시 시작하고 완벽하게 작동합니다! 그게 다야.
Jhune Carlo Trogelio
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.