Tidak dapat terhubung ke Redis di 127.0.0.1:6379: Sambungan ditolak dengan homebrew

120

Menggunakan homebrew untuk menginstal Redis tetapi ketika saya mencoba melakukan ping Redis, itu menunjukkan kesalahan ini:

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

Catatan: Saya mencoba mematikan firewall dan mengedit file conf tetapi masih tidak bisa melakukan ping. Saya menggunakan macOS Sierra dan homebrew versi 1.1.11

bufei
sumber

Jawaban:

281

Setelah menginstal redis, ketik dari terminal:

redis-server

Dan Redis-Server akan dimulai

LuFFy
sumber
1
Namun, bagaimana cara menghentikannya agar tidak mendengarkan port / host itu?
Afolabi Olaoluwa Akinwumi
@AfolabiOlaoluwaAkinwumi Tolong Rujuk Bagaimana saya bisa menghentikan server
redis
3
Untuk jendela dari Command Prompt, cd C:\Program Files\Redisdan kemudian redis-server
Pradeep Kumar Prabaharan
2
cara menjalankan redis-server terus menerus di latar belakang, saya menggunakan ubuntu @LuFFy
AATHITH RAJENDRAN
1
@AATHITHRAJENDRAN, Periksa jawaban ini , saya harap ini akan membantu
LuFFy
37

Saya menemukan pertanyaan ini ketika mencoba mencari tahu mengapa saya tidak dapat terhubung ke redis setelah memulainya melalui brew services start redis.

tl; dr

Bergantung pada seberapa segar mesin atau instal Anda, kemungkinan besar Anda kehilangan file konfigurasi atau direktori untuk redis default.

  1. Anda memerlukan file konfigurasi di /usr/local/etc/redis.conf. Tanpa file redis-serverini tidak akan mulai. Anda dapat menyalin file konfigurasi default dan memodifikasinya dari sana dengan

    cp /usr/local/etc/redis.conf.default /usr/local/etc/redis.conf
    
  2. Anda harus /usr/local/var/db/redis/ada. Anda dapat melakukannya dengan mudah

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

Terakhir restart saja redis dengan brew services restart redis.

Bagaimana Anda menemukan ini !?

Saya membuang banyak waktu untuk mencari tahu apakah redis tidak menggunakan default melalui homebrew dan port mana yang digunakan. Layanan menyesatkan karena meskipun redis-serverbelum benar-benar dimulai, brew services listmasih akan menampilkan redis sebagai "dimulai". Pendekatan terbaik adalah menggunakan brew services --verbose start redisyang akan menunjukkan kepada Anda bahwa file log ada di /usr/local/var/log/redis.log. Mencari di sana saya menemukan pistol merokok

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

atau

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

Untungnya log membuat solusi di atas menjadi jelas.

Tidak bisakah aku lari saja redis-server?

Anda pasti bisa. Ini hanya akan mengambil terminal atau mengganggu terminal Anda sesekali jika Anda dijalankan redis-server &. Juga itu akan dimasukkan ke dump.rdbdalam direktori apa pun Anda menjalankannya ( pwd). Saya kesal karena harus menghapus file atau mengabaikannya di git jadi saya pikir saya akan membiarkan brew melakukan pekerjaan dengan layanan.

Aaron
sumber
terima kasih, ini menyelesaikan masalah saya pada proyek laravel di mana saya mendapatkan koneksi yang ditolak di baris abstractconnection.php 155
luckyguy73
Saya juga mengalami error di abstractconnection.php baris 155! Gila.
Kevin Gagnon
Mulailah dengan verbose melakukan hal itu untuk saya. Saya mengalami masalah di redis.conf. Terima kasih
SangamAngre
18

Jika setelah instalasi Anda perlu menjalankan redissepanjang waktu, cukup ketik terminal:

redis-server &

Menjalankan redis menggunakan pemula di Ubuntu

Saya telah mencoba memahami cara mengatur sistem dari bawah ke atas di Ubuntu. Saya baru saja menginstalnya rediske dalam kotak dan inilah cara saya melakukannya dan beberapa hal yang harus diperhatikan.

Untuk memasang:

sudo apt-get install redis-server

Itu akan membuat redispengguna dan menginstal init.dskrip untuk itu. Karena upstartsekarang merupakan pengganti untuk menggunakan init.d, saya pikir saya harus mengubahnya untuk dijalankan menggunakan upstart.

Untuk menonaktifkan init.dskrip default untuk redis:

sudo update-rc.d redis-server disable

Kemudian buat /etc/init/redis-server.confdengan script berikut:

description "redis server"

start on runlevel [23]
stop on shutdown

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

respawn

Untuk apa skrip ini upstartmengetahui perintah apa yang harus dijalankan untuk memulai proses. Baris terakhir juga memberitahu upstartuntuk terus mencoba respawn jika mati.

Satu hal yang saya harus berubah /etc/redis/redis.confadalah daemonize yesuntuk daemonize no. Apa yang terjadi jika Anda tidak mengubahnya maka redis-serverakan bercabang dan membuat daemonisasi sendiri, dan proses induk akan hilang. Ketika ini terjadi, upstartanggap bahwa proses telah mati / berhenti dan Anda tidak akan memiliki kendali atas proses tersebut dari dalam upstart.

Sekarang Anda dapat menggunakan perintah berikut untuk mengontrol redis-server:

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

Semoga bermanfaat!

matahari ku
sumber
9

Ini cara yang lebih baik untuk terhubung ke redis Anda.

Pertama, periksa alamat ip server redis seperti ini.

ps -ef | grep redis

Hasilnya adalah jenis "redis 1184 1 0 .... / usr / bin / redis-server 172.xxx:6379

Dan kemudian Anda dapat terhubung ke redis dengan opsi -h (nama host) seperti ini.

redis-cli -h 172.xxx

jihyun
sumber
2

Dalam kasus saya, itu adalah kata sandi yang berisi beberapa karakter seperti ', setelah mengubahnya, server dimulai tanpa masalah.

Talu
sumber
1

Saya baru saja mengalami masalah yang sama karena saya telah menggunakan sintaks yang tidak tepat di file konfigurasi saya. Saya bermaksud menambahkan:

maxmemory-policy allkeys-lru

ke file konfigurasi saya, tetapi hanya menambahkan:

allkeys-lru

yang ternyata mencegah Redis mengurai file konfigurasi, yang pada gilirannya mencegah saya untuk terhubung melalui cli. Memperbaiki sintaks ini memungkinkan saya untuk terhubung ke Redis.

duhaime
sumber
1

Apakah masalah dengan homebrew MacOSmasalah itu semacam izin yang hilang pada /usr/local/var/logdirektori, lihat masalah di sini

Untuk mengatasinya, saya menghapus /usr/local/var/logdan menginstal ulang redisbrew reinstall redis

zetacu
sumber
1

Pertama, Anda perlu menjalankan / memulai semua node redis menggunakan perintah di bawah ini, satu per satu untuk semua file conf. @Catatan: jika Anda menyiapkan cluster maka Anda harus memiliki 6 node, 3 akan menjadi master dan 3 akan menjadi slave. Redis-cli akan secara otomatis memilih master dan slave dari 6 node menggunakan --cluster perintah seperti yang ditunjukkan pada perintah saya di bawah ini .

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

lalu lari

[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

keluaran di atas harus seperti:

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

Cara kedua untuk mengatur semua hal secara otomatis: Anda dapat menggunakan utils / create-cluster scripts untuk mengatur semuanya untuk Anda seperti memulai semua node, membuat cluster yang Anda ikuti https://redis.io/topics/cluster-tutorial

Terima kasih

Sanjay
sumber
1

Ini bekerja untuk saya:

sudo service redis-server start
zahra
sumber
1

Sama seperti Aaron , dalam kasus saya brew services listmengklaim redis sedang berjalan, tetapi ternyata tidak. Saya menemukan informasi berikut di file log saya di /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

Itu ternyata disebabkan oleh konfigurasi berikut:

bind 127.0.0.1 ::1 192.168.161.1

yang diperlukan untuk memberikan akses mesin virtual VMWare Fusion saya ke server redis di macOS, host. Namun, jika mesin virtual tidak dimulai, kegagalan pengikatan ini menyebabkan redis tidak dapat dimulai sama sekali . Jadi memulai mesin virtual menyelesaikan masalah.

Glorfindel
sumber
1

Coba ini :

sudo service redis-server restart
Jhune Carlo Trogelio
sumber
Saya menggunakan Windows WSL Ubuntu, dan terus mendapatkan kesalahan di terminal saya. npm ERR! kode ELIFECYCLE npm ERR! errno 1 Jadi mencoba segala sesuatu di atas, tidak bekerja terutama di Windows. Itu sebabnya mencoba memulai ulang layanan redis di Ubuntu dan berfungsi dengan baik! Itu saja.
Jhune Carlo Trogelio