Memcachedをインストールしましたが、次のようなスクリプトテストを試してみました。
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211);
echo $memcache->getVersion();
ネストエラーを受け取りました:
:通知:MemcachePool :: getversion():サーバー127.0.0.1(tcp 11211、udp 0)が次の場合に失敗しました:62行目の/var/www/html/admin/test.phpのネットワークタイムアウト(0)
何が問題なのですか? memcachedは初めてです。
実行lsof -i
rootとして、リストしたポートでmemcacheデーモンが実行されていることを確認します。
正気のためにフォーマットされています:
memcached 16526 corneliu 31u IPv4 207975 0t0 TCP *:memcache (LISTEN)
memcached 16526 corneliu 32u IPv6 207976 0t0 TCP *:memcache (LISTEN)
memcached 16526 corneliu 33u IPv4 207979 0t0 UDP *:memcache
memcached 16526 corneliu 34u IPv6 207980 0t0 UDP *:memcache
したがって、memcacheサーバーはIPv4とIPv6の両方でTCPとUDPの両方をリッスンしています。memcacheの/ etc/servicesエントリはポート11211であると想定しています。サービスはリッスンしています。
この質問を参照します: https://stackoverflow.com/questions/6045187/memcache-connects-but-doesnt-respond-to-any-command サーバーがコマンドに応答していることを確認しますtelnetまたはnetcat経由で送信します。 tcpdumpまたはwiresharkを実行してネットワークトラフィックをキャプチャし、実際にどのパケットが移動しているかを確認する場合にも、おそらく非常に役立ちます。
最初にmemcache構成を変更せずにデバッグします。上記の質問に従ってサーバーのバインドアドレスを変更しようとすることは、最後に行う必要があります。進捗状況を教えてください。
多くの人がconnectの代わりにpconnectを使用して良い結果を出しました
$memcache = new Memcache;
$memcache->pconnect('127.0.0.1', 11211);
echo $memcache->getVersion();
詳細はこちら http://hostingfu.com/article/memcachepoolget-server-failed-with-network-timeout-possible-fixes