dalli
refuses to connect and read from a remote memcached
server, but telnet
works just fine.
I have connected to a remote server via SSH, and forwarded a memcached port over to my machine like this:
Host access.production
HostName 1.2.3.4
LocalForward 10001 9.8.7.6:11211
Now that I try to read keys from memcached
using telnet
, it works just fine:
$ telnet localhost 10001
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
However, the following Ruby script using dalli will fail:
require 'dalli'
client = Dalli::Client.new('localhost:10001')
client.get('my_key')
Why dalli
wouldn't connect to memcached, while telnet
– will?
Updated. dalli
returns this error:
I, [2015-07-17T11:22:36.839807 #4286] INFO -- : localhost:10001 failed (count: 0) Timeout::Error: IO timeout: {:host=>"localhost", :port=>10001, :down_retry_delay=>1, :socket_timeout=>0.5, :socket_max_failures=>2, :socket_failure_delay=>0.01, :value_max_bytes=>1048576, :compressor=>Dalli::Compressor, :compression_min_size=>1024, :compression_max_size=>false, :serializer=>Marshal, :username=>nil, :password=>nil, :keepalive=>true}
/Users/gmile/.rvm/gems/ruby-2.1.4@portal/gems/dalli-2.7.2/lib/dalli/ring.rb:45:in `server_for_key': No server available (Dalli::RingError)
from /Users/gmile/.rvm/gems/ruby-2.1.4@portal/gems/dalli-2.7.2/lib/dalli/client.rb:328:in `perform'
from /Users/gmile/.rvm/gems/ruby-2.1.4@portal/gems/dalli-2.7.2/lib/dalli/client.rb:53:in `get'
from dali_all_keys.rb:4:in `<main>'