การเชื่อมต่อ Redis ไปยัง 127.0.0.1:6379 ล้มเหลว - เชื่อมต่อ ECONNREFUSED


133

ฉันทำงานกับ node.js โดย expressjs
ฉันพยายามจัดเก็บบัญชีในเซสชัน ดังนั้นฉันจึงพยายามทดสอบเพื่อใช้เซสชันกับโค้ดใน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 }));

แต่ฉันพบข้อผิดพลาด Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSEDแต่ผมมีข้อผิดพลาด
โปรดช่วยฉันแก้ไขปัญหานี้


3
Redis กำลังทำงานอยู่หรือไม่? คุณสามารถเชื่อมต่อด้วยวิธีอื่นเช่น redis-cli ได้หรือไม่?
เพื่อนเศร้า

3
ขอบคุณเนื่องจากเซิร์ฟเวอร์ redis ไม่ทำงาน ฉันติดตั้งเซิร์ฟเวอร์ redis ตามบทช่วยสอนนี้
Huy Tran

คุณควรติดตั้งเซิร์ฟเวอร์ Redis บนเครื่องของคุณแล้วรัน ฉันไม่รู้ว่าทำไมผู้เขียนถึงไม่พูดถึงสิ่งสำคัญนี้ในคู่มือ!
Emad Aghayi

2
ฉันจะเพิ่มเซิร์ฟเวอร์ Redis สำหรับแอป Node Heroku ได้อย่างไร ฉันยังมีข้อผิดพลาดเดียวกัน
amar ghodke

คำตอบ:


224

หลังจากคุณติดตั้ง redis แล้วให้พิมพ์จากเทอร์มินัล:

redis-server

และคุณจะมี redis ทำงานอยู่


3
สำหรับฉันฉันควรระบุ conf ดังนั้นฉันจึงพิมพ์ >> (sudo) redis-server /etc/redis/redis.conf
Romans 8.38-39

4
ขอบคุณ. โง่แค่ไหนในบทช่วยสอนที่พวกเขาไม่เคยพูดถึงวิธีการเริ่มเซิร์ฟเวอร์ redis!
Codious-JR

8
redis-server --daemonize yesเพื่อทำงานในพื้นหลัง
Morteza Ziyae

61

ฉันจะแก้ปัญหานี้ด้วยวิธีต่อไป:

sudo apt-get install redis-server

จากนั้นเรียกใช้คำสั่งเพื่อยืนยันว่าทุกอย่างเรียบร้อย:

sudo service redis-server status

และผลลัพธ์จะเป็น: redis-server is running- นั่นหมายความว่าปัญหาได้รับการแก้ไขแล้ว


1
ข้อผิดพลาดนั้นได้รับการแก้ไข แต่ตอนนี้ข้อผิดพลาดใหม่แสดงเช่น "ข้อผิดพลาด: ERR ผิดจำนวนอาร์กิวเมนต์สำหรับคำสั่ง 'set'
vineet

1
ขอบคุณ! สิ่งนี้แก้ไขปัญหาได้เป็นเพียงบันทึกเล็ก ๆ เกี่ยวกับสภาพแวดล้อม Linux / WSL หลังจากติดตั้งเรียกใช้คำสั่งซ้ำredis-serverหรือนำหน้าโดย sudo หากจำเป็น หากทุกอย่างเป็นไปด้วยดีคุณจะเห็นข้อความ cli ของเซิร์ฟเวอร์ redis นอกจากนี้ยังสามารถตรวจสอบได้ตามsudo service redis-server statusที่ @author แนะนำ
เพียงแค่จะแปลก




4

ฉันก็มีปัญหาเดียวกันก่อนอื่นฉันพยายามรีสตาร์ทเซิร์ฟเวอร์ redis sudo service restartแต่ปัญหายังคงอยู่ จากนั้นฉันออกredis-serverจากsudo apt-get purge redis-serverและติดตั้งอีกครั้งโดยsudo apt-get install redis-serverแล้ว Redis ได้ทำงานอีกครั้ง นอกจากนี้ยังควรดูบันทึกของ redis ซึ่งอยู่ที่นี่/var/log/redis/redis-server.log


4

สำหรับผู้ใช้ Windows คุณสามารถใช้ chocolatey เพื่อติดตั้ง Redis

choco install redis-64

จากนั้นเรียกใช้เซิร์ฟเวอร์จาก

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

3

ฉันใช้ ubuntu 12.04 ฉันแก้ไขปัญหานั้นโดยการติดตั้ง redis-server

การติดตั้งเซิร์ฟเวอร์ redis สำหรับ ubuntu 12.04

การกำหนดค่าบางอย่างจะอนุญาตรูทใหม่นอกจากนี้ยังแสดงคู่มือสำหรับระบบปฏิบัติการอื่น ๆ

ขอบคุณ



1

สำหรับแพลตฟอร์ม windows คุณต้องตรวจสอบว่าredis-serverกำลังทำงานบน ip: port ที่กำหนดหรือไม่ คุณสามารถหาการกำหนดค่า Redis /conf/redis.confในไดเรกทอรีการติดตั้ง 127.0.0.1:6379โดยลูกค้าเริ่มต้นยอมรับ


1

ฉันใช้ MBP และติดตั้งรายละเอียดredisปัญหาของฉันได้รับการแก้ไขแก้ไขดาวน์โหลดแยกและคอมไพล์ Redis ด้วย:

$ 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

ไบนารีที่คอมไพล์ตอนนี้มีอยู่ในไดเร็กทอรี src

เรียกใช้ Redis ด้วย:

$ src/redis-server 

1

การเชื่อมต่อกับ redis ล้มเหลว ลองรีสตาร์ทเซิร์ฟเวอร์ redis ของคุณจากนั้นเริ่มต้นไคลเอนต์ของคุณอีกครั้งโดยเรียกใช้ 3 คำสั่งเหล่านี้:

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

3
กรุณาอธิบายคำตอบของคุณ ปัจจุบันถูกมองว่าเป็นโพสต์คุณภาพต่ำ ขอบคุณ!
กลางคัน

ฉันได้รับข้อผิดพลาดนี้ในอูบุนตู ... แก้ไขด้วยคำสั่งนี้. ตอนนี้มันใช้งานได้ดี .....
Balakumaran

1

ฉันคิดว่าคุณอาจติดตั้ง redis ด้วยซอร์สโค้ดหากคุณต้องการค้นหา redis-source-code-path / utils และเรียกใช้sudo install_server.shคำสั่ง หลังจากนั้นตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ redis ทำงานเป็นบริการสำหรับระบบของคุณ sudo service redis-server status

PS: ขึ้นอยู่กับ Debian / Ubuntu


1

ในกรณีของ ubuntu ข้อผิดพลาดเกิดจากการไม่ได้ตั้งค่าเซิร์ฟเวอร์ redis ติดตั้งเซิร์ฟเวอร์ redis อีกครั้งจากนั้นตรวจสอบสถานะ

หากไม่มีข้อผิดพลาดข้อความเช่นนี้จะปรากฏขึ้น: -

● redis-server.service - ที่เก็บคีย์ - ค่าขั้นสูงโหลด: โหลดแล้ว (/lib/systemd/system/redis-server.service; เปิดใช้งานพรีเซ็ตผู้จำหน่าย: เปิดใช้งาน) ใช้งาน: active (ทำงาน) ตั้งแต่พุธที่ 2018-01-17 20 : 07: 27 IST; 16 วินาทีที่แล้ว Docs: http://redis.io/documentation , man: redis-server (1) Main PID: 4327 (redis-server) CGroup: /system.slice/redis-server.service └─4327 / usr / bin / redis-server 127.0.0.1:6379


1

คุณต้องติดตั้งเซิร์ฟเวอร์ redis ก่อน

คุณสามารถติดตั้งเซิร์ฟเวอร์ redis บน mac ได้โดยทำตามขั้นตอน -

  $ 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

โชคดี.


โปรดทราบ: การดำเนินการนี้จะใช้เวลาพอสมควร หากคุณมีผู้จัดการการพึ่งพา (เบียร์หรืออื่น ๆ ) สิ่งนี้จะช่วยคุณประหยัดเวลา
lukas_o

0

สำหรับฉันฉันมีปัญหานี้บน Ubuntu 18.x แต่ปัญหาของฉันคือเซิร์ฟเวอร์ redis ของฉันทำงานบน 127.0.0.1 แต่ฉันพบว่าฉันต้องเรียกใช้บนที่อยู่ IP ของฉัน xxx.xx.xx.xx

ฉันเข้าไปในเครื่อง Ubuntu และทำสิ่งต่อไปนี้

cd /etc/redis/

sudo vim redis.conf

จากนั้นฉันก็แก้ไขส่วนนี้

################################## 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)

บันทึกแล้วรีสตาร์ท redis-server

sudo service redis-server restart หรือเพียงแค่เรียกใช้ redis-server


-5

ลองอัปเกรดโหนดของคุณเป็นเวอร์ชันล่าสุด

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

เวอร์ชัน 0.4 อาจทำงานไม่ถูกต้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.