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 yes에 daemonize 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.