暫存架是為方面使用者使用而提供的乙個臨時功能。當前有很多語言很多種方案來實現暫存架,以提高系統的友好訪問。這次,我們在傳統實現方案的基礎上,又做了一些改進,使暫存架的功能更成熟、更完美。由於暫存架的實現並不是特別的複雜,所以本文僅從理論方面介紹暫存架的設計方案。
暫存架的資料訪問方案通常有兩種:一種是儲存到資料庫中;另一種是儲存到本地。除非臨時儲存的資料量特別大,否則臨時儲存資料都是儲存在本地。資料儲存到本地通常又分為兩種,一種是儲存到記憶體中,另一種是放在檔案中,比如cookie。如果暫存架中的生命週期特別短,而且又頻繁訪問,那麼我們將其放在記憶體中。對於類似購物車這樣的暫存架,我們通常將其放在cookie中,因為cookie能較長時間的儲存資料,而且讀取速率也比普通檔案快。
由於乙個cookie檔案最大只能存放4k的資料量,因此我們只能將最重要的資訊存放在cookie中。超出4k容量之外的資料,我們放在**呢?
我們的解決方案是:將最重要的資料,比如檔案的標識位id存放到cookie中,4k大小的檔案足夠儲存成千上萬個id,也就足夠儲存所有的資料。那麼接下來應該如何讀取資料呢?
如果將所有的資料都去資料庫中讀取,那cookie中存放的id完全就可以省略,因為那樣起不到快速讀取資料的作用。我們的方案是將第一次從資料庫取出來的資料放到記憶體中,然後從記憶體中讀取,如果記憶體中資料失效之後,我們就根據id去資料庫中讀取,然後將這些資料再放進記憶體中,以此保持高效、準確的讀取資料。
儘管此種方案在實現起來比較繁瑣,但是對於提高系統的效能來說,又算的了什麼呢?而且這種方案還能實現暫存架的分頁呢!
提公升軟體效能
提高系統的安全性和健壯性,資料庫伺服器和應用伺服器,就要考慮冗餘設計。保證系統的高可用和高可靠以及高併發。保證系統在出現故障時,及時切換正常工作,使用雙機熱備份。使用redis快取伺服器提高系統的效能。使用讀寫分離技術減輕資料訪問的壓力,提公升系統的使用者體驗。在資料庫的設計上來使用分庫 分表 分割...
提公升頁面效能
1.資源壓縮合併,減少http請求 2.非核心 非同步載入 非同步載入的方式 a.動態指令碼載入 b.defer c.async defer 在html解析完成之後才會執行,並按照載入順序執行 async 在載入完成之後立即執行,和載入順序無關。3.利用瀏覽器快取 快取的分為強快取和協商快取 強快取...
效能繼續提公升
嘿嘿,今天改bug,又發現了乙個效能問題。在顯示所有bug列表的列印頁面下,顯示800個bug居然要花26s的時間,看上去已經是另人難於忍受了。在顯示測試報告頁面,由於不需要顯示bug列表,因此,成績從18s一下子提公升到了0.8s,現在這個列印頁面需要將所有的bug都列印出來,需要顯示所有的bug...