Как удалить ключ memcached, установленный другим веб-сервером

Рассмотрим 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 установил ключ. Как можно этого добиться?

Прямо сейчас я перебираю серверы и выдаю удаление на каждом. Я думаю, что может быть лучший способ сделать это.

1

Решение

При архитектуре с несколькими серверами ключи доступа к Memcached (установить / получить / удалить) на серверах основаны на хэше ключа. Итак, да — web2 не будет знать об удалении на web1. Но это не проблема в вашей ситуации. Memcache удалит ключ прямо с сервера, который был помещен ранее.

Пожалуйста, прочитайте этот вопрос: Использование нескольких серверов memcache в пуле

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]