Dalli から localhost で実行されている Memcached サーバーに接続できません。Memcached をローカルで実行した経験はありませんが、Dalli と Memcachier Heroku アドオンをしばらく問題なく使用しています。
memcached を homebrew でダウンロードしたところ、問題なくインストールできたようです。私はこのように実行しています:
memcached -l 127.0.0.1 -p 11211 -vv
サーバーに接続してクエリを実行できます
telnet 127.0.0.1 11211
memcached の詳細な出力はすべてのリクエストをログに記録するので、正常に動作していることがわかります。ただし、Dalli では実行できません。私はこのように接続しようとしています:
require 'dalli'
dc = Dalli::Client.new('127.0.0.1:11211')
dc.set('foo', 123)
最後のコマンドを実行した後、ダリは間違いなく吐き出します
Dalli::RingError: No server available
from /Users/mac/.rvm/gems/ruby-1.9.3-p392/gems/dalli-2.6.4/lib/dalli/ring.rb:45:in `server_for_key'
from /Users/mac/.rvm/gems/ruby-1.9.3-p392/gems/dalli-2.6.4/lib/dalli/client.rb:347:in `perform'
from /Users/mac/.rvm/gems/ruby-1.9.3-p392/gems/dalli-2.6.4/lib/dalli/client.rb:199:in `set'
...この接続エラーが発生していますが、理由はわかりません。ここに奇妙な部分があります: Memcached はリクエストを受信していますが、接続に成功することはありません。接続しようとするたびに、次の 2 行が詳細出力によって吐き出されます。
<6 new client connection
<6 connection closed.
それで、ここで何が起こっているのですか?これは認証のことですか?コマンドライン オプションを忘れていませんか?
編集: 何が起こっているのかを理解しました-組み込みバージョンのMemcachedを使用していたことを除いて、私はすべてを正しく行っていました。最新バージョンをインストールし、すべて問題ありませんでした。