2016-04-14 13 views
0

ben hem Serseri VM çalıştıran bir Redis sunucusuna bir Raylar sunucusundan bağlanırken bu hatayı gidermek için çalışıyorum üzerine REDIS bağlanma:Serseri makinesine

Redis::CannotConnectError: Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED) 

Ben Redis sunucusunun çalıştığından doğrulayabilir aşağıdaki ile, düşünüyorum:

# Accept connections on the specified port, default is 6379. 
# If port 0 is specified Redis will not listen on a TCP socket. 
port 6379 

# If you want you can bind a single interface, if the bind option is not 
# specified all the interfaces will listen for incoming connections. 
# 
bind 127.0.0.1 

ve Vagrantfile:

ps aux | grep redis 
redis  839 0.1 0.1 35140 1840 ?  Ssl 00:21 0:00 /usr/local/bin/redis-server *:6379 
vagrant 1220 0.0 0.0 11676 952 pts/0 R+ 00:22 0:00 grep --color=auto redis 

sudo netstat -tnlp 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address   Foreign Address   State  PID/Program name 
tcp  0  0 0.0.0.0:6379   0.0.0.0:*    LISTEN  839/redis-server *: 
tcp  0  0 0.0.0.0:57102   0.0.0.0:*    LISTEN  778/rpc.statd 
tcp  0  0 0.0.0.0:111    0.0.0.0:*    LISTEN  507/rpcbind 
tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN  725/sshd 
tcp6  0  0 :::6379     :::*     LISTEN  839/redis-server *: 
tcp6  0  0 :::111     :::*     LISTEN  507/rpcbind 
tcp6  0  0 :::22     :::*     LISTEN  725/sshd 
tcp6  0  0 :::49667    :::*     LISTEN  778/rpc.statd 

benim redis.conf içinde bu var

VAGRANTFILE_API_VERSION = "2" 

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
    config.vm.box = "ubuntu-12.04-amd64" 

    # THE URL FROM WHERE THE 'CONFIG.VM.BOX' BOX WILL BE FETCHED IF IT 
    # DOESN'T ALREADY EXIST ON THE USER'S SYSTEM. 
    config.vm.box_url = "http://files.vagrantup.com/precise64.box" 

    config.vm.network "forwarded_port", guest: 6379, host: 6379, auto_correct: true 

    config.vm.provider "virtualbox" do |v| 
    v.customize ["modifyvm", :id, "--memory", "1024"] 
    v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] 
    end 

    config.vm.provision "shell", path: "init.sh" 
end 

canonical entry'u takip etmeyi denedim, ancak herhangi bir yol yapmadım. Baktığım açık bir şey olabilir. Birisi bana başka ne deneyebilirim diye doğru yönde işaret edebilir mi?

DÜZENLEME: Tam hata iletisi:

$redis = Redis.new(:host => '127.0.0.1', :port => 6379) 
=> #<Redis client v3.2.2 for redis://127.0.0.1:6379/0> 
$redis.set('a', 'b') 
Redis::CannotConnectError: Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED) 

DÜZENLEME: bağlama 127.0.0.1 dışarı yorumladı ve Redis kutusundan ping başardı ama hala Raylar hiçbir şanslar:

redis-cli -h 127.0.0.1 ping 
PONG 

cevap

0

Figürlü Bunu, Windows makinemde çalışması için VM (VirtualBox) için adaptörün IP adresini kullanmam gerekiyordu. Bu işlendi:

$redis = Redis.new(:host => '192.168.56.1', :port => 6379) 
=> #<Redis client v3.2.2 for redis://192.168.56.1:6379/0> 
$redis.set('a', 'b') 
=> "OK" 
$redis.get('a') 
=> "b"