Не удалось установить Memcache при истечении времени истечения
Memcached каждый день выбрасывает странную ошибку
Code1:
$mc = new Memcached();
$mc->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
$mc->addServer(API::MEMCHACHED_HOST, API::MEMCHACHED_PORT);
var_dump($mc->getResultCode(), $mc->getResultMessage());
echo "\n---------------\n";
var_dump(time() + 60);
var_dump($mc->set('443645421_3807313365_lock', 1, time() + 60));
var_dump($mc->getResultCode(), $mc->getResultMessage());
var_dump($mc->get('443645421_3807313365_lock'));
var_dump($mc->getResultCode(), $mc->getResultMessage());
int(0)
string(7) "SUCCESS"
---------------
int(1505983246)
bool(true)
int(0)
string(7) "SUCCESS"
bool(false)
int(16)
string(9) "NOT FOUND"
Кодекса2:
$mc = new Memcached();
$mc->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
$mc->setOption(Memcached::OPT_HASH, Memcached::HASH_CRC);
$mc->setOption(Memcached::OPT_SERVER_FAILURE_LIMIT, 3);
$mc->setOption(Memcached::OPT_RETRY_TIMEOUT, 1);
$mc->setOption(Memcached::OPT_NO_BLOCK, true);
$mc->setOption(Memcached::OPT_BUFFER_WRITES, true);
$mc->addServer(API::MEMCHACHED_HOST, API::MEMCHACHED_PORT);
var_dump($mc->getResultCode(), $mc->getResultMessage());
echo "\n---------------\n";
var_dump(time() + 60);
var_dump($mc->set('443645421_3807313365_lock', 1, time() + 60));
var_dump($mc->getResultCode(), $mc->getResultMessage());
var_dump($mc->get('443645421_3807313365_lock'));
var_dump($mc->getResultCode(), $mc->getResultMessage());
int(0)
string(7) "SUCCESS"
---------------
int(1505983184)
bool(true)
int(32)
string(13) "ACTION QUEUED"
bool(false)
int(16)
string(9) "NOT FOUND"
Когда я убрал срок действия, он снова заработал:
var_dump($mc->set('443645421_3807313365_lock', 1));
var_dump($mc->getResultCode(), $mc->getResultMessage());
var_dump($mc->get('443645421_3807313365_lock'));
var_dump($mc->getResultCode(), $mc->getResultMessage());
int(0)
string(7) "SUCCESS"
---------------
int(1505983309)
bool(true)
int(0)
string(7) "SUCCESS"
int(1)
int(0)
string(7) "SUCCESS"
Некоторая информация о memcached сервере:
> telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
stats
STAT pid 1175
STAT uptime 68219
STAT time 1505980019
STAT version 1.4.25 Ubuntu
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 42.544000
STAT rusage_system 222.392000
STAT curr_connections 6
STAT total_connections 80641
STAT connection_structures 15
STAT reserved_fds 20
STAT cmd_get 4668690
STAT cmd_set 101810
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 2158521
STAT get_misses 2510169
STAT delete_misses 18
STAT delete_hits 14858
STAT incr_misses 0
STAT incr_hits 17287
STAT decr_misses 0
STAT decr_hits 12153
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 389605219
STAT bytes_written 796249085
STAT limit_maxbytes 536870912
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT malloc_fails 0
STAT bytes 120802
STAT curr_items 749
STAT total_items 107884
STAT expired_unfetched 1189
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 4142
STAT crawler_reclaimed 0
STAT crawler_items_checked 0
STAT lrutail_reflocked 6
> netstat -tap | grep memcached
tcp 0 0 localhost:11211 *:* LISTEN 1175/memcached
tcp 0 0 localhost:11211 localhost:60056 ESTABLISHED 1175/memcached
После перезапуска memcached он снова работает нормально.. И все потоки работают нормально.
netstat -tap | grep memcached
tcp 0 0 localhost:11211 *:* LISTEN 5680/memcached
tcp 0 0 localhost:11211 localhost:34698 ESTABLISHED 5680/memcached
tcp 0 0 localhost:11211 localhost:34346 ESTABLISHED 5680/memcached
tcp 0 0 localhost:11211 localhost:34738 ESTABLISHED 5680/memcached
Помогите разобраться и исправить эту ошибку. Я не хочу принимать временное решение - ежедневную перезагрузку сервера memcache.