我有一個大的用戶表,我在C++ Web服務(BitTorrent跟蹤器)中緩存。整個表格每5分鐘重新進行一次。這有一些缺點,比如數據長達5分鐘,並重新提取大量沒有改變的數據。 有沒有一種簡單的方法來獲取自上次以來的更改? 理想情況下,我不必更改更新數據的查詢。如何在C++ Web服務中緩存MySQL表
回答
兩個直接的可能性來找我:
- MySQL查詢緩存
- Memcached的(或類似)的緩存層
我先試試查詢緩存,因爲它可能要容易得多建立。做一些基本的測試/基準,看看它是否符合你的需求。 Memcached可能與您現有的緩存非常相似,但是,正如您所提到的那樣,您將找到一種更好的方式來使舊的緩存條目無效(查詢緩存爲您所做的一切)。
MySQL查詢緩存對性能不利,它仍然會要求我查詢MySQL的每一個請求,這是我沒有時間。該服務目前可以執行5000+個請求/秒(單線程),這使得每次請求的時間少於0.2毫秒。 Memcache與我目前的緩存會有同樣的問題,不是嗎? – XTF
您必須先進行測試,然後才能說出是否太慢或者僅僅是因爲涉及大量變量。根據查詢的複雜性/大小,我不會對亞毫秒執行時間感到驚訝。如果查詢緩存確實太慢,那麼更快的緩存層(如Memcached或您自己的緩存)就是下一步。這要求您手動管理緩存項目,理想情況下,每當更新緩存項目時用其新值替換緩存項目。 – uesp
我應該說,查詢緩存是否有用取決於很多因素,這就是爲什麼我先說「測試」。 – uesp
- 1. C- HTTP Web服務器:如何緩存
- 2. 緩存Web服務
- 3. 如何在c#中構建Web服務緩存#
- 4. Web服務 - 緩存更新
- 5. 如何緩存Exchange Web服務API autodiscoverurl?
- 6. IIS緩存和Web服務
- 7. 在MonoTouch中緩存Web服務調用
- 8. 在Spring Web服務中緩存?
- 9. ASP.NET web服務緩存
- 10. Apache Web服務器緩存
- 11. 在本地mysql數據庫中緩存SOAP Web服務
- 12. 如何緩存在C#中的Web服務結果/ MVC的,而不是調用Web服務的所有時間
- 13. 如何在IIS7中緩存WCF REST Web服務?
- 14. 如何在Web服務中緩存憑據?
- 15. 何時緩存Web服務的結果?
- 16. Web服務中的靜態緩存
- 17. 在使用web服務時緩存
- 18. 適用於存儲Web服務輸出緩存的雲服務?
- 19. 如何使用Tomcat服務器緩存表(MySQL)查找數據
- 20. 文件IO緩慢或緩存在Web服務中?
- 21. 如何在C#中實現Web服務
- 22. 用Web服務調用ASP.NET緩存
- 23. 如何使C#.Net Web服務在IIS7中永久存在?
- 24. 服務器端的Web緩存系統
- 25. Web服務器緩存文件
- 26. 緩存Web服務結果並過期
- 27. 通過MSMQ緩存到WCF Web服務
- 28. android緩存web服務數據
- 29. Rails 3 - 緩存Web服務調用
- 30. Azure Appfabric緩存+ WCF Web服務
預取允許我在沒有任何MySQL查詢的情況下響應請求,這對性能來說是很好的(必需)。 – XTF
我們在談論多少個網絡服務器? Facebook爲此使用memcached。 –
只有一個進程在一臺服務器上 – XTF