2013-05-30 105 views
0

我的網站向外部服務發送curl請求並獲取XML響應。
這些請求是用戶特定的,響應相當繁重(&多個請求在同一頁面上),因此加載頁面並使用太多服務器流量需要時間。在緩存中存儲大量數據的最佳方式是什麼?

我是如何嘗試解決問題:

  • 從客戶端(JS)發送的請求。不幸的是,解析接收到的數據並將其集成到頁面對象變得相當混亂
  • 將響應放入會話中(因爲它們是用戶特定的)。服務器上的會話文件變得太快了。實施了一個計數器,如果它們的數量太大(現在使用這個),將清除會話中的所有響應。
  • Memcache?太多的數據要保存

你認爲我應該使用其中一種解決方案還是有另一種方法來做到這一點?

+0

然後給出了數據緩存 – Gautam3164

+0

存儲@ Gautam3164的差異類別不同的​​密鑰:它是如何解決問題是,用戶數量太多,請求不同,仍然需要太多的空間,並且從會話 – lvil

回答

0

使用

  • 緩存
  • 數據庫

你在你的 「數據存儲」 推東西的commbination(這是緩存和數據庫)。然後,如果可用,則在數據存儲區中查找。數據存儲查看緩存,如果可用的話給它,如果不查看數據庫。如果一切都失敗了,請獲取信息。

你也可以增加緩存的大小(但這不是一個好的溶劑)。

+0

獲取數據的速度會更慢嗎?您的意思是memcache?我認爲,它是太多的數據:(( – lvil

+0

有很多不同的緩存可用,但Memcached多用於任務 – MKroeders

0

嘗試這樣

$key = "User_id_".$user_id."category_".$category_id; 

然後ACC這個密鑰存儲像

每個數據
$memcache->set($key, $data, , 3600); 
相關問題