2014-06-11 50 views
3

我們在我們的web項目中使用Memcached和Zend Framework。現在,我們需要使用Zend_Cache API中指定的標籤有選擇地清除緩存。如何選擇性清除緩存(使用標籤或其他選項)與Memchached後端和Zend Framework

不幸的是,memcached doesn't support tags

我發現這些替代方法:

  • Memcached-tag project。有人測試過它嗎?如何用Zend實現它?
  • 使用像this question這樣的wildchards,但是看起來有點令人困惑,不太透明並且難以用Zend實現。
  • 使用this implementationthis one,在Memcached中支持標籤,意識到缺點。
  • 還有其他的選擇嗎?

在此先感謝

回答

2

你說得對。 Memcache不支持標籤。

您可以使用另一個鍵值來實現memcache的標記。

EX:

$這個 - > objCache->保存($ arrResults,$ strKey,數組($ strMyTag),$ intCacheTime)//注意:數組($ strMyTag)不能對內存緩存

工作

MemcacheTag :: setTag($ strKey,$ strMyTag)//我們的工作圍繞

關於setTag方法& MemcacheTag:

功能setTag($ strKey,$ strTag){

$arrKey = $cacheOjb->get($strTag); 

$arrKey[]= $strKey; 

}

功能deleteCacheWithTag($ strTag){

$arrKey = $cacheOjb->get($strTag); 

foreach ($arrKey as $strKey){ 

    $objCache->delete($strKey); 

} 

}

此解決辦法很簡單,它適合我的項目。

*注意:這些代碼需要一些修改,很抱歉發佈趕緊

相關問題