2014-10-29 67 views
0

據我所知,使用memcached的好處是通過緩存在內存中來縮短存儲在數據庫中的信息的訪問時間。但是,基於網絡協議(例如TCP)的客戶端 - 服務器模型的時間開銷是不是也相當可觀?我的猜測是,它實際上可能會更糟糕,因爲網絡訪問通常比硬件訪問慢。我錯了什麼?memcached的客戶端 - 服務器模型的好處是什麼?

謝謝!

回答

0

確實緩存不會解決網絡傳輸時間。然而,對用戶來說重要的是從請求到交付的總時間。如果這個總時間是可感知的,那麼你的網站似乎沒有反應。即使您的整體運輸時間超出您的控制範圍,適當使用緩存也可以提高響應速度。

此外,緩存可用於減少整體服務器負載,這基本上會爲您購買更多的週期。考慮對所有用戶的響應相同的查詢的情況 - 例如,假設您每次加載頁面時都顯示一些關於網站活動或狀態的信息,並且此信息不依賴於加載用戶的用戶的身份頁。讓我們想象一下,這個信息並沒有很快改變。在這種情況下,您可能會決定每隔一分鐘,每五分鐘或每N頁加載一次或重複計算這些信息,並始終提供緩存版本。在這種情況下,你有兩個好處。首先,你已經削減了很多重複計算的值,你已經決定不需要重新計算,這會減少服務器的負載。其次,你已經確保用戶總是從緩存中獲得服務,而不是從計算中獲得服務,如果計算昂貴的話,這可能會加速他們的工作。 在適當的情況下,這兩者都可以從用戶的角度改善性能。但是,當然,與任何優化一樣,您需要有基準,並實際基準數據,而不是根據您認爲什麼是正確的。

+0

非常感謝您的評論。很高興知道除了縮短響應時間外,它還可以減少服務器上的負載。爲了確保我能正確理解,我認爲就響應時間而言,最佳做法是讓服務器緊密靠近物理位置,否則可能需要長達100毫秒的數據包才能傳達美國。 – 2014-10-30 06:33:32

+0

您可能想了解內容交付網絡的想法。 (CDN) – 2014-10-30 12:05:46

相關問題