Рассмотрим 2 сервера memcached, mc1
а также mc2
и 2 веб-сервера, web1
а также web2
, используя PHP с библиотекой Memcached.
$mc = new Memcached();
$mc->addServer(mc1);
$mc->addServer(mc2);
От web1
следующий код выполняется:
$mc->set('abc', 'val');
// key is set to mc1
Позже из web2
:
$mc->delete('abc');
Из того, что я понимаю, как работает библиотека memcached, web2
не знаю где web1
установил ключ. Как можно этого добиться?
Прямо сейчас я перебираю серверы и выдаю удаление на каждом. Я думаю, что может быть лучший способ сделать это.
При архитектуре с несколькими серверами ключи доступа к Memcached (установить / получить / удалить) на серверах основаны на хэше ключа. Итак, да — web2 не будет знать об удалении на web1. Но это не проблема в вашей ситуации. Memcache удалит ключ прямо с сервера, который был помещен ранее.
Пожалуйста, прочитайте этот вопрос: Использование нескольких серверов memcache в пуле
Других решений пока нет …