儲存系統使用感悟
每一個應用系統都會使用儲存,把儲存理解掌握清晰,並將合適的儲存使用在合適的場景下不是一件容易的事。
1 當下事務做的最好的依然是關係資料庫,如果業務是訂單 支付等,還是用關係資料庫,不要給自己找麻煩。
2 關係資料庫是很強大的,但關係資料庫不是銀彈,不能解決所有儲存問題。
3 文件資料庫值得研究比如mongodb。
4 快取是提升效能重要方式,無論是服務本地快取,還是分散式快取叢集。
5 redis是很棒的分散式快取,但是不能當黑盒用,需要了解每種資料結構的時間複雜度,空間複雜度,業務系統越複雜,併發量越大,越要多詳細理解redis架構,不然會碰的灰頭土臉。
6 能不用分散式儲存系統,儘量就不要用,如果要用就要方方面面儘量瞭解清楚仔細,不然總會引入bug。
7 快取所有資料不是一個好方法,儘量要用lru快取。
8 redis儲存資料不要有大key或者大value,redis單執行緒架構很容易被堵塞。
9 分散式事務是一件極其複雜的事情。
10 資料儲存要提前進行規劃,並且要管理清晰,不然很容易沒用的資料留在儲存中,浪費儲存空間。
11 記憶體 ssd 機械磁碟是大規模資料降低成本方式。
12 hbase讀的效能還是比較差。
13 es不是一種儲存,跳躍表的時間複雜度很高,資料儲存在裡面,搜尋出來2ms,除非資料特別少,幾千條,否則怎麼可能2ms,用一種儲存要深入的掌握他。
14 合適的場景用合適的儲存,圖資料庫可以深入研究,看是否適合推薦引擎。
15 儲存沒有銀彈,關係資料庫適合強事務場景,分散式快取解決高併發,文件資料庫在網際網路業務場景下更靈活。
16 如果來源的儲存都滿足不了業務要求,就需要自己研發,儲存研發需要大量的時間以及高水平研發人員,並且需要嚴格構建流程,嚴格的研發規範,編碼規範,需要全面的測試用例,壓力測試效能測試,以及自動化測試工具,如無必要不要自己研發。
對於儲存一點感悟,希望對大家有點啟發。