新浪微博、Twitter 等 SNS 社交網站如何合理規劃自己的緩存設計?

我現在對sns社交類網站的緩存設計感到有些困惑和不解,比如twitter的緩存設計 http://timyang.net/architecture/twitter-cache-architecture/
總感覺如果緩存的粒度不合適的話,就可能形成草木皆兵的感覺


沒什麼困惑的,都是Rails常用的緩存模式,然後用scala寫了一個非同步消息隊列而已。


Twitter這樣網站的緩存還是比較複雜的。其實不只是粒度的問題,還需要對數據的特性分析。其中Vector緩存部分應該是微薄類網站設計比較考驗技術的地方,Tim Yang好像寫了很多博文分析,它是有數據結構的k-v資料庫,要為熱點用戶讀寫並發做優化。因為微博的實時性要求相對較高,所以保證前面緩存的命中率可能會比較麻煩,這時可能還會對特殊的用戶特殊處理。但是,緩存的效率是用命中率衡量的,前面的命中率越高,後面的壓力就會越小。使用queue是為了減少並發下的資源鎖,緩解持久化的壓力。


推薦閱讀:

Android 系統里的 RSS 訂閱會產生大量緩存垃圾么?如何清理?

TAG:新浪微博 | Twitter | 設計類網站 | 網站 | 網站架構 | 社交產品 | 緩存 |