2013-11-24 54 views
0

上我通过为每个网站键要缓存值。Memcached的每个网站的服务器

例如:

如果我在网站上一组$memcached->set('somekey', 'somevalue')和B网站叫$memcached->get('somekey'),我得到了'somevalue'

如何阻止它?

+0

正如我在另一个重复问题上回答的,唯一的解决方案是在他们自己的端口/ UNIX套接字上运行两个Memcached守护进程,并让每个站点连接到另一个。 – 2015-05-10 11:17:34

回答

0

memcachememcached接口内没有本地方式来执行此操作。

您必须手动将密钥更改为每个站点唯一。你可以通过在密钥前面加上这个。例如,

$memcached->set($site_name . 'somekey', 'somevalue'); 

$memcached->get($site_name . 'somekey'); 

,你已经在你的代码在每个站点的一种独特的方式定义$site_name

您可能希望创建MemcacheMemcached(取决于扩展您正在使用),它覆盖了各种getter和setter 自动添加站点特定的前缀扩展的类。

+0

谢谢,但每个人都可以像独特的一样键入相同的键。例如,如果我输入$ memcached-> set($ site_name。'somekey','somevalue');在网站A中,在网站B中,我可以输入$ memcached-> set('site A name'。'somekey','someanothervalue');并改变网站的缓存..所以这不是好的方法。也许还有另一种方式?非常感谢你! –