Redis'e 127.0.0.1:6379'da bağlanılamadı: Bağlantı homebrew ile reddedildi


120

Redis'i yüklemek için homebrew kullanıyorum ancak Redis'e ping atmaya çalıştığımda şu hatayı gösteriyor:

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

Not: Güvenlik duvarını kapatmayı ve conf dosyasını düzenlemeyi denedim ancak yine de ping yapamıyorum. MacOS Sierra ve homebrew 1.1.11 sürümünü kullanıyorum

Yanıtlar:


282

Yükledikten sonra şunu redisyazın terminal:

redis-server

Ve Redis-Server başlatılacak


1
Ancak, bu bağlantı noktasını / ana bilgisayarı dinlemesini nasıl durdurabilirim?
Afolabi Olaoluwa Akinwumi

@AfolabiOlaoluwaAkinwumi bakınız lütfen ben Redis-sunucu nasıl durdurabilirim
luffy

3
Komut İstemi'nden pencereler için cd C:\Program Files\Redisve ardından redis-server
Pradeep Kumar Prabaharan

2
redis-server sürekli olarak arka planda nasıl çalıştırılır, ubuntu kullanıyorum @LuFFy
AATHITH RAJENDRAN

1
@AATHITHRAJENDRAN, Bu cevabı kontrol edin , umarım yardımcı olur
LuFFy

37

Bu soruyu, başlattıktan sonra neden redis'e bağlanamadığımı anlamaya çalışırken buldum brew services start redis.

tl; Dr.

Makinenizin veya kurulumunuzun ne kadar yeni olduğuna bağlı olarak, muhtemelen bir yapılandırma dosyası veya redis varsayılanları için bir dizin eksiktir.

  1. Adresinde bir yapılandırma dosyasına ihtiyacınız var /usr/local/etc/redis.conf. Bu dosya olmadan redis-serverbaşlamaz. Varsayılan yapılandırma dosyasını kopyalayabilir ve oradan değiştirebilirsiniz.

    cp /usr/local/etc/redis.conf.default /usr/local/etc/redis.conf
    
  2. Var olmanız gerekiyor /usr/local/var/db/redis/. Bunu ile kolayca yapabilirsiniz

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

Son olarak redis'i brew services restart redis.

Bunu nasıl anlarsınız !?

Redis'in varsayılanları homebrew aracılığıyla kullanıp kullanmadığını ve hangi bağlantı noktasında olduğunu anlamaya çalışırken çok zaman harcadım. Hizmetler yanıltıcıydı çünkü redis-serveraslında başlamamış olsa bile brew services listredis'i "başlatıldı" olarak göstermeye devam ediyordu. En iyi yaklaşım, brew services --verbose start redisgünlük dosyasının konumunda olduğunu gösterecek olanı kullanmaktır /usr/local/var/log/redis.log. Oraya bakarken tüten silahları buldum

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

veya

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

Neyse ki, günlük yukarıdaki çözümü açık hale getirdi.

Koşamaz mıyım redis-server?

Elbette yapabilirsin. Sadece bir terminal alır veya koşarsanız ara sıra terminalinizi keser redis-server &. Ayrıca dump.rdbçalıştırdığınız dizine ( pwd) koyacaktır . Dosyayı kaldırmak ya da git'te görmezden gelmek zorunda kaldım, bu yüzden brew'ın bu işi hizmetlerle yapmasına izin vereceğimi düşündüm.


teşekkürler, bu, soyut bağlantımda bağlantımın reddedildiği bir laravel projesinde sorunumu çözdü. php line 155
luckyguy73

Abstractconnection.php 155 satırında da bir hata yaşıyordum! Çılgın.
Kevin Gagnon

Ayrıntılı ile başlayın benim için bir şey yaptı. Redis.conf dosyasında bir sorun yaşıyordum. Teşekkürler
SangamAngre

18

Kurulumdan sonra redisher zaman çalışmanız gerekiyorsa , terminali yazmanız yeterlidir :

redis-server &

Ubuntu'da upstart kullanarak redis çalıştırma

Ubuntu'da sıfırdan sistemlerin nasıl kurulacağını anlamaya çalışıyorum. Yeni kurdumredisKutunun üzerine ve işte bunu nasıl yaptım ve dikkat etmem gereken bazı şeyler.

Yüklemek:

sudo apt-get install redis-server

Bu bir rediskullanıcı oluşturacak ve init.dbunun için komut dosyasını kuracaktır . Yana upstartartık init.d kullanma yerine geçer, ben kullanarak çalıştırmak dönüştürmek gerektiğini anlamaya upstart.

Varsayılan init.dkomut dosyasını devre dışı bırakmak için redis:

sudo update-rc.d redis-server disable

Ardından /etc/init/redis-server.confaşağıdaki komut dosyasıyla oluşturun:

description "redis server"

start on runlevel [23]
stop on shutdown

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

respawn

upstartİşlemi başlatmak için hangi komutun çalıştırılacağını bilmek için komut dosyası nedir . Son satır ayrıca upstartölürse yeniden dirilmeye çalışılmasını söyler .

Ben değiştirmek zorunda bir şey /etc/redis/redis.confolduğunu daemonize yesiçin daemonize no. Eğer değiştirmezseniz ne olur, o zaman redis-serverçatallanır ve kendi kendini daemonlaştırır ve ana süreç ortadan kalkar. Bu olduğunda,upstart sürecin öldüğünü / durduğunu ve süreç üzerinde içeriden kontrolünüzün olmayacağını düşünür upstart.

Artık aşağıdaki komutları kullanarak kontrol edebilirsiniz redis-server:

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

Umarım bu yardımcı olmuştur!


9

Redis'lerinize bağlanmanın daha iyi bir yolu.

İlk olarak redis sunucusunun ip adresini bu şekilde kontrol edin.

ps -ef | grep redis

Sonuç bir çeşit "redis 1184 1 0 .... / usr / bin / redis-server 172.xxx:6379

Ve sonra redis'e -h (hostname) seçeneği ile bu şekilde bağlanabilirsiniz.

redis-cli -h 172.xxx


2

Benim durumumda, 'değiştirdikten sonra sunucu sorunsuz bir şekilde başladı gibi bazı karakterleri içeren parolaydı.


2

Bu benim için çalışıyor:

sudo service redis-server start

redis sunucusunu başlatmayı unuttum. teşekkür ederim.
Mark Anthony

1

Ben de aynı sorunu yaşadım çünkü yapılandırma dosyamda yanlış sözdizimi kullanmıştım. Eklemek istedim:

maxmemory-policy allkeys-lru

yapılandırma dosyama, ancak bunun yerine yalnızca eklendi:

allkeys-lru

Bu, Redis'in yapılandırma dosyasını ayrıştırmasını açıkça engelledi ve bu da benim cli aracılığıyla bağlanmamı engelledi. Bu sözdizimini düzeltmek Redis'e bağlanmama izin verdi.


1

Sorunla ilgili bu sorun dizinde bir homebrew MacOStür izin eksikti, buraya bakın/usr/local/var/log

/usr/local/var/logÇözmek için redis'i sildim ve yeniden yükledimbrew reinstall redis


1

Öncelikle aşağıdaki komutu kullanarak tüm redis düğümlerini tüm conf dosyaları için tek tek açmanız / başlatmanız gerekir. @Not: Eğer küme kuruyorsanız, 6 düğümünüz olmalıdır, 3'ü ana ve 3'ü de bağımlı olacaktır .redis-cli, aşağıdaki komutlarımda gösterildiği gibi --cluster komutunu kullanarak 6 düğümden otomatik olarak ana ve köleyi seçecektir .

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

o zaman koş

[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

Yukarıdakinin çıktısı şöyle olmalıdır:

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

Her şeyi otomatik olarak kurmanın 2. yolu: tüm düğümleri başlatmayı sevdiğiniz her şeyi sizin için ayarlamak için utils / küme oluşturma komut dosyalarını kullanabilirsiniz, takip ettiğiniz bir küme oluşturabilirsiniz https://redis.io/topics/cluster-tutorial

Teşekkürler


1

Tıpkı Aaron gibi , benim durumumda brew services listredis'in çalıştığını iddia etti, ama değildi. Aşağıdaki bilgileri günlük dosyamda buldum /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

Bunun aşağıdaki konfigürasyondan kaynaklandığı ortaya çıkıyor:

bind 127.0.0.1 ::1 192.168.161.1

bu, VMWare Fusion sanal makinemin ana bilgisayar olan macOS üzerindeki redis sunucusuna erişimini sağlamak için gerekliydi. Sanal makine başlatılmadı Ancak, bu bağlama başarısızlığı başlatmak için değil REDIS neden hiç . Böylece sanal makineyi başlatmak sorunu çözdü.


1

Bunu dene :

sudo service redis-server restart

Windows WSL Ubuntu kullanıyorum ve terminalimde sürekli hatalar alıyorum. npm ERR! kod ELIFECYCLE npm ERR! errno 1 Yani en üstteki her şeyi denedim, özellikle Windows'ta çalışmıyor. Bu yüzden Ubuntu'daki redis hizmetini yeniden başlatmayı denedi ve mükemmel çalışıyor! Bu kadar.
Jhune Carlo Trogelio
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.