Không thể kết nối lại với 127.0.0.1:6379 - kết nối ECONNREFUSED


133

Tôi làm việc với node.js bằng expressjs
Tôi cố gắng lưu trữ tài khoản vào phiên. Vì vậy, tôi cố gắng kiểm tra để sử dụng phiên với mã trong expressjs

var RedisStore = require('connect-redis')(express);
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({ secret: "keyboard cat", store: new RedisStore }));

nhưng tôi đã có lỗi Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED.
Xin hãy giúp tôi giải quyết vấn đề này


3
Redis có chạy không? Bạn có thể kết nối với nó bằng các phương tiện khác, ví dụ như redis-cli?
một anh chàng buồn bã

3
Cảm ơn bạn, vì máy chủ redis không chạy. Tôi cài đặt redis-server theo hướng dẫn này
Huy Tran

Bạn nên cài đặt máy chủ Redis trên máy của mình và chạy nó. Tôi không biết tại sao tác giả không đề cập đến điều quan trọng này trong hướng dẫn!
Emad Aghayi

2
Làm cách nào để thêm redis-server cho ứng dụng Heroku nút của tôi? Tôi cũng có lỗi tương tự.
amar ghodke

Câu trả lời:


224

Sau khi bạn cài đặt redis, gõ từ thiết bị đầu cuối:

redis-server

và bạn sẽ chạy lại


3
Đối với tôi, tôi nên chỉ định conf, vì vậy tôi gõ >> (sudo) redis-server /etc/redis/redis.conf
Rô-ma 8.38-39

4
Cảm ơn bạn. Thật ngu ngốc trong hướng dẫn họ không bao giờ đề cập đến cách khởi động máy chủ redis!
Codious-JR

8
redis-server --daemonize yeschạy trong nền
Morteza Ziyae

61

Tôi giải quyết vấn đề này theo cách tiếp theo:

sudo apt-get install redis-server

sau đó chạy lệnh để xác nhận rằng mọi thứ đều ổn:

sudo service redis-server status

Và đầu ra sẽ là: redis-server is running- điều đó có nghĩa là vấn đề đã được giải quyết.


1
lỗi đó đã được sửa nhưng bây giờ lỗi mới hiển thị, tức là "Lỗi: ERR sai số lượng đối số cho lệnh 'set'"
Vineet

1
Cảm ơn! điều này đã giải quyết vấn đề, chỉ là một lưu ý nhỏ trên môi trường Linux / WSL sau khi cài đặt chạy lại lệnh redis-serverhoặc tiền tố bằng sudo nếu cần. Nếu mọi việc suôn sẻ, bạn sẽ thấy thông báo cli của máy chủ redis. cũng có thể được xác minh theo sudo service redis-server statusđề xuất của @ Tác giả.
thật kỳ lạ vào

32

Cài đặt redis trên hệ thống của bạn trước -

brew install redis

sau đó khởi động máy chủ redis -

redis-server


12

Giải pháp đơn giản:

chỉ nhấn bên dưới khen một lần và khởi động lại máy chủ của bạn

redis-server

4

Tôi cũng gặp vấn đề tương tự, đầu tiên tôi đã thử khởi động lại máy chủ redis sudo service restartnhưng vấn đề vẫn còn. Sau đó, tôi lấy redis-serverbằng sudo apt-get purge redis-servervà cài đặt nó một lần nữa bằng sudo apt-get install redis-servervà sau đó là redis đã hoạt động trở lại. Cũng đáng để xem bản ghi redis nằm ở đây/var/log/redis/redis-server.log


4

Đối với người dùng Windows, bạn có thể sử dụng chocolatey để cài đặt Redis

choco install redis-64

sau đó chạy máy chủ từ

C:\ProgramData\chocolatey\lib\redis-64\redis-server.exe



1

Đối với nền tảng windows, Bạn phải kiểm tra xem có redis-serverđang chạy trên ip: port đã cho không. bạn có thể tìm thấy cấu hình redis tại thư mục cài đặt /conf/redis.conf. theo mặc định khách hàng chấp nhận 127.0.0.1:6379.


1

Tôi đang sử dụng MBP và cài đặt lại chi tiết vấn đề của tôi đã được giải quyết. Kết hợp Tải xuống, giải nén và biên dịch Redis với:

$ wget http://download.redis.io/releases/redis-3.0.2.tar.gz

$ tar xzf redis-3.0.2.tar.gz

$ cd redis-3.0.2

$ make

Các tệp nhị phân hiện được biên dịch có sẵn trong thư mục src.

Chạy Redis với:

$ src/redis-server 

1

Kết nối của bạn để làm lại là thất bại. Hãy thử khởi động lại máy chủ redis của bạn, sau đó khởi động lại máy khách của bạn bằng cách chạy 3 lệnh sau:

sudo service redis-server restart
redis-server
redis-cli

3
Hãy giải thích câu trả lời của bạn. Nó hiện đang được xem như là một bài chất lượng thấp. Cảm ơn!
Bỏ học

tôi đã gặp lỗi này trong Ubuntu ... giải quyết bằng các lệnh
này..bây

1

Tôi nghĩ có lẽ bạn đã cài đặt redis bằng mã nguồn. Nếu bạn cần xác định vị trí để redis-source-code-path / utils và chạy sudo install_server.sh lệnh. Sau đó, đảm bảo máy chủ redis đã chạy như một dịch vụ cho hệ thống của bạn sudo service redis-server status

PS: dựa trên Debian / Ubuntu


1

Trong trường hợp Ubuntu, lỗi là do máy chủ redis không được thiết lập. Cài đặt lại máy chủ redis và sau đó kiểm tra trạng thái.

Nếu không có lỗi, thì một thông báo như thế này sẽ được hiển thị: -

● redis-server.service - Lưu trữ khóa-giá trị nâng cao Đã tải: đã tải (/lib/systemd/system/redis-server.service; đã bật; nhà cung cấp cài sẵn: đã bật) Hoạt động: hoạt động (đang chạy) kể từ Thứ tư 2018-01-17 20 : 07: 27 IST; 16s trước Tài liệu: http://redis.io/documentation , man: redis-server (1) Chính PID: 4327 (redis-server) Cgroup: /system.slice/redis-server.service └─4327 / usr / bin / redis-server 127.0.0.1:6379


1

Bạn phải cài đặt máy chủ redis trước;

Bạn có thể cài đặt máy chủ redis trên mac bằng cách làm theo bước -

  $ curl -O http://download.redis.io/redis-stable.tar.gz
  $ tar xzvf redis-stable.tar.gz
  $ cd redis-stable
  $ make
  $ make test
  $ sudo make install
  $ redis-server

Chúc may mắn.


Hãy lưu ý: Điều này sẽ mất một thời gian để chạy. Nếu bạn có một người quản lý phụ thuộc (bia hoặc khác), điều này sẽ giúp bạn tiết kiệm thời gian.
lukas_o

0

Đối với tôi, tôi đã gặp sự cố này trên Ubuntu 18.x, nhưng vấn đề của tôi là máy chủ redis của tôi đang chạy trên 127.0.0.1 nhưng tôi phát hiện ra rằng tôi cần chạy nó trên địa chỉ IP xxx.xx.xx.xx của tôi

Tôi đã đi vào máy Ubuntu của tôi và làm như sau.

cd /etc/redis/

sudo vim redis.conf

Sau đó tôi chỉnh sửa phần này.

################################## NETWORK #####################################

# By default, if no "bind" configuration directive is specified, Redis listens
# for connections from all the network interfaces available on the server.
# It is possible to listen to just one or multiple selected interfaces using
# the "bind" configuration directive, followed by one or more IP addresses.
#
# Examples:
#
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#
# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
# internet, binding to all the interfaces is dangerous and will expose the
# instance to everybody on the internet. So by default we uncomment the
# following bind directive, that will force Redis to listen only into
# the IPv4 loopback interface address (this means Redis will be able to
# accept connections only from clients running into the same computer it
# is running).le to listen to just one or multiple selected interfaces using
#
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# bind 127.0.0.1 ::1 10.0.0.1
bind 127.0.0.1 ::1 # <<-------- change this to what your iP address is something like (bind 192.168.2.2)

Lưu nó, và sau đó khởi động lại máy chủ redis.

sudo service redis-server restart hoặc đơn giản là chạy redis-server


-5

Hãy thử nâng cấp nút của bạn lên phiên bản mới nhất.

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

phiên bản 0.4 có thể không hoạt động đúng.

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.