2013-11-24 86 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');並改變網站的緩存..所以這不是好的方法。也許還有另一種方式?非常感謝你! –