考虑使用带memcached库的PHP的2个memcached服务器mc1
和mc2
以及2个web服务器web1
和web2
。
$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
在哪里设置了密钥。如何才能做到这一点?
现在我正在遍历服务器,并在每个服务器上发布一个删除。我想可能有更好的方法。
使用多服务器架构,基于密钥的哈希在服务器上缓存访问(set/get/delete)密钥。所以,是的,web2不会知道在web1上删除。但在你的情况下这不是问题。Memcache将删除之前放置在服务器上的密钥。
请阅读此问题:在一个池中使用多个memcache服务器