緩存
-
關于大型網站技術演進的思考(六):存儲的瓶頸(6)
原文出處: 夏天的森林 在講數據庫水平拆分時候,我列出了水平拆分數據庫需要解決的兩個難題,它們分別是主鍵的設計問題和單表查詢的問題,主鍵問題前文已經做了比較詳細的講述了,但是第二個問題我沒有講述,今天我將會講講如何解決數據表被垂直拆分后的單表查詢問題。 要解決數據表被水平拆分后的單表查詢問題,我們首先要回到問題的源頭,我們為什么需要將數…
-
關于大型網站技術演進的思考(五):存儲的瓶頸(5)
原文出處: 夏天的森林 上文里我遺留了兩個問題,一個問題是數據庫做了水平拆分以后,如果我們對主鍵的設計采取一種均勻分布的策略,那么它對于被水平拆分出的表后續的查詢操作將有何種影響,第二個問題就是水平拆分的擴容問題。這兩個問題在深入下去,本系列就越來越技術化了,可能最終很多朋友讀完后還是沒有找到解決實際問題的啟迪,而且我覺得…
-
關于大型網站技術演進的思考(四):存儲的瓶頸(4)
原文出處: 夏天的森林 如果數據庫需要進行水平拆分,這其實是一件很開心的事情,因為它代表公司的業務正在迅猛的增長,對于開發人員而言那就是有不盡的項目可以做,雖然會感覺很忙,但是人過的充實,心里也踏實。 數據庫水平拆分簡單說來就是先將原數據庫里的一張表在做垂直拆分出來放置在單獨的數據庫和單獨的表里后更進一步的把本來是一個整體…
-
關于大型網站技術演進的思考(二):存儲的瓶頸(2)
原文出處: 夏天的森林 上篇里我講到某些網站在高并發下會報出503錯誤,503錯誤的含義是指網站服務端暫時無法提供服務的含義,503還表達了網站服務端現在有問題但是以后可能會提供正常的服務,對http協議熟悉的人都知道,5開頭的響應碼表達了服務端出現了問題,在我們開發測試時候最為常見的是500錯誤,500代表的含義是服務端程…
-
那些年我們一起追過的緩存寫法(三)
原文出處: 蘑菇先生 上次我們說了多級緩存,本章詳細介紹下內存緩存該如何設計。 一:分析設計 假設有個項目有一定并發量,要用到多級緩存,如下: 在實際設計一個內存緩存前,我們需要考慮的問題: 1:內存與Redis的數據置換,盡可能在內存中提高數據命中率,減少下一級的壓力。 2:內存容量的限制,需要控制緩存數量。 3:熱點數…
-
那些年我們一起追過的緩存寫法(二)
原文出處: 蘑菇先生 上次主要討論緩存讀寫這塊各種代碼實現。本篇是就上次的問題接著來,繼續看那些年我們各種緩存用法。 一:緩存預熱 上次有同學問過。在第一次加載時,我們的緩存都為空,怎么進行預熱。 單機Web情況下,一般我們使用RunTimeCache。相對于這種情況下: 1:我們可以在啟動事件里面刷新 1 2 3 4 vo…
-
關于大型網站技術演進的思考(一):存儲的瓶頸(1)
原文出處: 夏天的森林 前不久公司請來了位互聯網界的技術大牛跟我們做了一次大型網站架構的培訓,兩天12個小時信息量非常大,知識的廣度和難度也非常大,培訓完后我很難完整理出全部聽到的知識,今天我換了個思路是回味這次培訓,這個思路就是通過本人目前的經驗和技術水平來思考下大型網站技術演進的過程。 首先我們要思考一個問題,什么樣的網站才是大型網…