2013-02-17 23 views
0

我想知道是否有可能通過使用PHP的APC通過URI傳遞給php腳本的一些數據。當通過uri傳遞數據時,是否可以緩存腳本?

如果有可能,那麼我想知道如果使用APC是我網站的最佳緩存解決方案。

我的網站基本上探測了互聯網上的各種API,例如YouTube和Echonest以獲取音樂家的數據。在用戶點擊我網站上的藝術家時,藝術家的數據將從各種API中全新加載。網站上有很多藝術家的名單,所以緩存它們都是一個好主意?目前,我的網站速度很慢,因爲每次用戶點擊新的藝術家時,我都會不斷探索API。

回答

0

除非您需要絕對實時並同步到您的各種數據提供者,緩存通常是一個非常好的主意,可以加速您的網站的確。

APC確實指令緩存,以及可用於數據緩存爲好,所以很適合從你的供應商緩存API響應和數據(見這裏http://www.php.net/manual/en/ref.apc.php APC的API)

APC但是每個Web服務器運行,因此如果您的HA設置包含多個Web服務器,並且您要求所有Web服務器與緩存同步,那麼您可能需要查看memcache/redis來進行集中緩存。

請注意,無論您是否需要跨服務器同步都完全取決於您的應用程序的性質,對此沒有正確和錯誤的答案。僅供參考:同步高速緩存產生APC不具備的網絡成本。

在任何情況下,無論是使用APC還是memcache/redis,根據URI模式緩存或從查詢字符串參數進行緩存都非常好。這些緩存基於鍵/值,因此您可以爲您的密鑰設計一個命名約定系統,以存儲相關的數據。例如:

$key = sprintf("%s/%s/%s/%s", $provider_name, $api_endpoint, $param1, $param2); 
apc_add($key, $the_data, 300); // cache for 5mns 
相關問題