Không thể kết nối với Redis tại 127.0.0.1:6379: Kết nối bị từ chối với homebrew


120

Sử dụng homebrew để cài đặt Redis nhưng khi tôi cố gắng ping Redis, nó hiển thị lỗi này:

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

Lưu ý: Tôi đã thử tắt tường lửa và chỉnh sửa tệp conf nhưng vẫn không ping được. Tôi đang sử dụng macOS Sierra và homebrew phiên bản 1.1.11

Câu trả lời:


281

Sau khi cài đặt redis, gõ từ terminal:

redis-server

Và Redis-Server sẽ được khởi động


1
Tuy nhiên, làm cách nào để ngăn nó nghe cổng / máy chủ đó?
Afolabi Olaoluwa Akinwumi

@AfolabiOlaoluwaAkinwumi vui lòng tham khảo Làm thế nào tôi có thể ngăn chặn redis-server
Luffy

3
Đối với cửa sổ từ Command Prompt, cd C:\Program Files\Redisvà sau đó redis-server
Pradeep Kumar Prabaharan

2
làm thế nào để chạy redis-server liên tục trong nền, tôi đang sử dụng ubuntu @LuFFy
AATHITH RAJENDRAN

1
@AATHITHRAJENDRAN, Kiểm tra câu trả lời này , tôi hy vọng nó sẽ hữu ích
LuFFy

37

Tôi đã tìm thấy câu hỏi này trong khi cố gắng tìm hiểu lý do tại sao tôi không thể kết nối với redis sau khi khởi động nó qua brew services start redis.

tl; dr

Tùy thuộc vào mức độ làm mới máy hoặc cài đặt của bạn, bạn có thể thiếu tệp cấu hình hoặc thư mục cho các mặc định của redis.

  1. Bạn cần một tệp cấu hình tại /usr/local/etc/redis.conf. Nếu không có tệp redis-servernày sẽ không bắt đầu. Bạn có thể sao chép qua tệp cấu hình mặc định và sửa đổi nó từ đó với

    cp /usr/local/etc/redis.conf.default /usr/local/etc/redis.conf
    
  2. Bạn cần /usr/local/var/db/redis/phải tồn tại. Bạn có thể làm điều này dễ dàng với

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

Cuối cùng chỉ cần khởi động lại redis với brew services restart redis.

Làm thế nào để bạn tìm ra điều này !?

Tôi đã lãng phí rất nhiều thời gian để cố gắng tìm hiểu xem redis có không sử dụng các giá trị mặc định thông qua homebrew hay không và nó đang ở cổng nào. Các dịch vụ gây hiểu lầm bởi vì ngay cả khi redis-serverchưa thực sự bắt đầu, brew services listvẫn sẽ hiển thị redis là "đã bắt đầu". Cách tốt nhất là sử dụng phương pháp này brew services --verbose start redissẽ cho bạn thấy rằng tệp nhật ký đang ở /usr/local/var/log/redis.log. Nhìn vào đó, tôi tìm thấy (các) khẩu súng đang hút thuốc

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

hoặc là

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

Rất may, bản ghi đã làm cho giải pháp trên rõ ràng.

Tôi không thể chạy được redis-server sao?

Bạn chắc chắn có thể. Nó sẽ chỉ chiếm một thiết bị đầu cuối hoặc thỉnh thoảng làm gián đoạn thiết bị đầu cuối của bạn nếu bạn chạy redis-server &. Ngoài ra, nó sẽ đặt dump.rdbtrong bất kỳ thư mục nào bạn chạy nó trong ( pwd). Tôi cảm thấy khó chịu khi phải xóa tệp hoặc bỏ qua nó trong git vì vậy tôi nghĩ rằng tôi sẽ để brew thực hiện công việc với các dịch vụ.


cảm ơn, điều này đã giải quyết được vấn đề của tôi trên một dự án laravel nơi tôi nhận được kết nối bị từ chối trong dòng abstractconnection.php 155
luckyguy73

Tôi cũng gặp lỗi trong dòng 155 của abstractconnection.php! Khùng.
Kevin Gagnon

Bắt đầu với chi tiết đã làm điều đó cho tôi. Tôi đang gặp sự cố trong redis.conf. Cảm ơn
SangamAngre

18

Nếu sau khi cài đặt, bạn cần chạy redismọi lúc, chỉ cần nhập vào terminal:

redis-server &

Chạy redis bằng cách sử dụng phiên bản mới trên Ubuntu

Tôi đang cố gắng hiểu cách thiết lập hệ thống từ đầu trên Ubuntu. Tôi vừa cài đặt redisvào hộp và đây là cách tôi đã thực hiện và một số điều cần chú ý.

Để cài đặt:

sudo apt-get install redis-server

Điều đó sẽ tạo một redisngười dùng và cài đặt init.dtập lệnh cho nó. Vì upstartbây giờ là sự thay thế cho việc sử dụng init.d, tôi nghĩ tôi nên chuyển đổi nó để chạy bằng cách sử dụng upstart.

Để tắt init.dtập lệnh mặc định cho redis:

sudo update-rc.d redis-server disable

Sau đó, tạo /etc/init/redis-server.confbằng tập lệnh sau:

description "redis server"

start on runlevel [23]
stop on shutdown

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

respawn

Đây là tập lệnh upstartđể biết lệnh nào cần chạy để bắt đầu quá trình. Dòng cuối cùng cũng nói rằng upstarthãy cố gắng hồi sinh nếu nó chết.

Một điều tôi đã phải thay đổi trong /etc/redis/redis.confdaemonize yesđể daemonize no. Điều gì sẽ xảy ra nếu bạn không thay đổi nó thì nó redis-serversẽ tự phân nhánh và daemonize, và quy trình mẹ sẽ biến mất. Khi điều này xảy ra, hãy upstartnghĩ rằng quy trình đã chết / dừng và bạn sẽ không kiểm soát được quy trình từ bên trong upstart.

Bây giờ bạn có thể sử dụng các lệnh sau để kiểm soát redis-server:

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

Hy vọng điều này là hữu ích!


9

Đó là cách tốt hơn để kết nối với redis của bạn.

Đầu tiên, hãy kiểm tra địa chỉ ip của máy chủ redis như thế này.

ps -ef | grep redis

Kết quả là "redis 1184 1 0 .... / usr / bin / redis-server 172.xxx:6379

Và sau đó bạn có thể kết nối với tùy chọn redis bằng -h (tên máy chủ) như thế này.

redis-cli -h 172.xxx


2

Trong trường hợp của tôi, đó là mật khẩu chứa một số ký tự như ', sau khi thay đổi nó, máy chủ đã khởi động mà không gặp vấn đề gì.


1

Tôi vừa gặp sự cố tương tự vì tôi đã sử dụng cú pháp không đúng trong tệp cấu hình của mình. Tôi muốn thêm:

maxmemory-policy allkeys-lru

vào tệp cấu hình của tôi, nhưng thay vào đó, chỉ thêm:

allkeys-lru

điều này rõ ràng đã ngăn Redis phân tích cú pháp tệp cấu hình, do đó ngăn tôi kết nối thông qua cli. Việc sửa cú pháp này đã cho phép tôi kết nối với Redis.


1

Có vấn đề với homebrew MacOSvấn đề là một số loại quyền bị thiếu trên /usr/local/var/logthư mục xem vấn đề ở đây

Để giải quyết nó, tôi đã xóa /usr/local/var/logvà cài đặt lại redisbrew reinstall redis


1

Đầu tiên, bạn cần khởi động / khởi động tất cả các nút redis bằng lệnh dưới đây, từng nút một cho tất cả các tệp conf. @Lưu ý: nếu bạn đang thiết lập cụm thì bạn phải có 6 nút, 3 nút sẽ là chính và 3 sẽ là nô lệ .redis-cli sẽ tự động chọn chủ và phụ trong số 6 nút bằng cách sử dụng lệnh --cluster như được hiển thị trong các lệnh dưới đây của tôi .

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

sau đó chạy

[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

đầu ra của trên phải như sau:

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

Cách thứ 2 để thiết lập tất cả mọi thứ tự động: bạn có thể sử dụng tập lệnh utils / create-cluster để thiết lập mọi thứ cho bạn như khởi động tất cả các nút, tạo cụm cho bạn theo dõi https://redis.io/topics/cluster-tutorial

Cảm ơn


1

Công việc này đối với tôi:

sudo service redis-server start

1

Cũng giống như Aaron , trong trường hợp của tôi brew services listtuyên bố rằng redis đang chạy, nhưng không phải vậy. Tôi tìm thấy thông tin sau trong tệp nhật ký của mình tại /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

Điều đó hóa ra là do cấu hình sau:

bind 127.0.0.1 ::1 192.168.161.1

cần thiết để cấp cho máy ảo VMWare Fusion của tôi quyền truy cập vào máy chủ redis trên macOS, máy chủ. Tuy nhiên, nếu máy ảo đã không bắt đầu, suy ràng buộc này gây ra redis không khởi động ở tất cả . Vì vậy, khởi động máy ảo đã giải quyết được vấn đề.


1

Thử cái này :

sudo service redis-server restart

Tôi đang sử dụng Windows WSL Ubuntu và liên tục gặp lỗi trong thiết bị đầu cuối của mình. npm ERR! mã ELIFECYCLE npm ERR! errno 1 Vì vậy, đã thử mọi thứ ở trên cùng, nó không hoạt động đặc biệt là trong Windows. Đó là lý do tại sao đã thử khởi động lại dịch vụ redis trên Ubuntu và hoạt động hoàn toàn tốt! Đó là tất cả.
Jhune Carlo Trogelio
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.