2011-02-14 127 views
1

我想存儲一些關鍵值。 我看到memcache api支持即時壓縮: memcache_set(obj,var,value,MEMCACHE_COMPRESSED,ttl)apc緩存壓縮

apc怎麼樣? 我找不到任何文檔。

我的目標,例如在PHP中:

function cache($key, $value) 
{ 
$data  = serialize($value); 
if (strlen($data) >= 1024) 
    $data = 'z' . gzcompress($data, 1); 
else 
    $data = '=' . $data; 
return apc_store($key, $data, $ttl); 
} 

回答

2

APC不會在此刻支持壓縮。

它可能永遠不會,因爲它不是apc設計的目的。

APC更像是一個操作碼緩存系統,而不是像memcached這樣的關鍵值內存數據庫,儘管它可以很好地用於這兩個目的。

但是,如果只是存儲數據是你的目標,memcached可能是一個更好的選擇,因爲它的目的和方向將被優化和開發。它還支持分發/縮放/複製/你可以通過網絡運行它等。

但是給你一個選擇。爲什麼不直接在應用程序的存儲/獲取之前/之後直接壓縮和解壓縮?您可以輕鬆定義您自己的緩存處理程序。你是如何在你的問題中做到這一點的。我不明白爲什麼APC應該「即時」執行此操作。我個人更喜歡在應用程序中這樣做,以獲得更大的靈活性和可擴展性(例如,您可以將其擴展爲分發fcgi服務器)

+0

我只是想確保在APC進行壓縮之前不壓縮。情況並非如此。如果我將有可用的內存緩存,則會打開我的壓縮文件並使用它。 – Massimo 2011-02-16 10:49:24