2013-08-05 18 views
0

我正在使用PHP和Memcache。我想要多個鍵指向相同的數據。兩個鍵可以指向memcache中的相同數據

$datawallright = $memcache->get('wads'.$wall->getIdwall()); 

這是我如何檢索數據。如果沒有數據,我會做一些MySql查詢,這需要時間。大多數情況下,關鍵點指向獨特的數據。問題是有時候我想要更多的鍵指向相同的數據。

$memcache->set('wads'.$wall->getIdwall(), $datawallright, false, 3600) or die ("Failed to save data at the server"); 

如果我這樣做,它是將數據保存在內存緩存這是確定的唯一值,但要多次將數據存儲在其他情況下,這是空間的浪費緩存。

所以我想要bassicaly是wads1和wads2指向memcache中的相同數據。

回答

0

不,沒有本地方法可以在密鑰之間創建memcached共享對象。

如果你真的需要實現這樣的事情,你可以自己實現這樣的解決方法。例如,假設密鑰hello映射到對象world

你可以讓這個在你的代碼庫,這對價值{'alias': N}將會使你的代碼在這種情況下進行的關鍵N.分佈式緩存查找因此,任何鍵,你只需存儲數據如下:

hello - >world

hello2 - >{'alias': 'hello'}

hello3 - >{'alias': 'hello'}

儘管這可能是你的代碼中不好的模式;如果您始終只是首先引用指向您想要的數據的鍵(並且每次都會節省額外的memcached命中),那麼它會更乾淨,更容易維護。

相關問題