質問: 0) { $memcached->addServers($servers); } // 値をsetまたはget // ここでsetしていたサーバーがダウンした場合に書き込み不能となる $memcached->set('key01', 'value01', 3600); ``` ### 試したこと 以下のFor a proper FailOver mechanism:を参考に実装 http://php.net/manual/ja/memcached.addservers.php memcached->setOptionのパラメータを変えて試したりしましたが、 改善はしませんでした。 ### 補足情報(FW/ツールのバージョンなど) ・apache 2.4.6 ・PHP 7.2.15 ・memcached 1.4.15 ・PHP memcached拡張モジュール 3.1.3 ・libmemcached 1.0.18 ご教授のほどよろしくお願い致します。
回答: 以下のサイトの 「To enable automatic failover...」のメモの設定に変更したところ、 想定した動きになりました。 (サーバーが片方ダウンした場合、もう一方に書き込みが行われるようになる) http://php.net/manual/ja/memcached.construct.php ``` $memcache->setOption(Memcached::OPT_RECV_TIMEOUT, 1000); $memcache->setOption(Memcached::OPT_SEND_TIMEOUT, 1000); $memcache->setOption(Memcached::OPT_TCP_NODELAY, true); $memcache->setOption(Memcached::OPT_SERVER_FAILURE_LIMIT, 50); $memcache->setOption(Memcached::OPT_CONNECT_TIMEOUT, 500); $memcache->setOption(Memcached::OPT_RETRY_TIMEOUT, 300); $memcache->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT); $memcache->setOption(Memcached::OPT_REMOVE_FAILED_SERVERS, true); $memcache->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true); ``` とりあえずはこちらで自己解決とさせていただきます。