內存數據庫、關係型數據庫和非關係型數據庫
二、內存數據庫(Redis,MongoDb,SQLite,Oracle等):
數據庫類型 |
特性 |
優點 |
缺點 |
關係型數據庫: SQLite,Oracle,MySQL等 |
1,關係型數據庫,是指採用了關係模型來組織數據的數據庫; |
1,容易理解:二維表結構是非常貼近邏輯世界一個概念,關係模型相對網狀,層次等其他模型來說更容易理解; |
1,爲了維護一致性所付出的巨大代價就是其讀寫性能比較差; |
非關係型數據庫: MongoDB,Redis,HBase等 |
1,使用鍵值對存儲數據 ; |
1,無需經過SQL層的解析,讀寫性能很高 ; |
1,不提供SQL支持,學習和使用成本較高; |
關係型數據庫:在於關係,對數據操作(比如數據的增刪改查)之前需要考慮關係,具備ACID特性(ACID是原子原子性,一致性一致性,隔離性隔離性,耐用性持久性),高併發能力一般不行
二、內存數據庫(Redis,MongoDb,SQLite,Oracle等):
基於內存,讀寫速度快,數據有可能會丟失,丟失率只能降到最低,但不能根除。
MongoDB:更適合集羣部署,更多的考慮到集羣方案,一般可用於“海量數據分析的訪問效率提升”。
Redis:更偏重於進程順序寫入,雖然支持集羣,也僅限於主-從模式。一般可用於“較小數據量的性能和運算,比如網絡開發中的session存儲”。
一般分佈式都會遵從的協議:有點類似美國的總統選舉。
比如有一個建議,有?個服務器,有大於2N + 1的服務器表示贊同,那麼這個建議就被通過。
假如建議是“一致性”,只要大於2N + 1的服務器之間的數據一致,那他們就是一致。
假如建議是“主服務器”,只要大於2N + 1的服務器投票給要被選舉的服務器,被選舉的服務器也將變成主服務器
還有很多思維:https://www.jdon.com/artichect/raft.html
一臺服務器:快照持久化(RDB),同時滿足在指定的時間間隔內和改動了幾個數據的兩個條件,生成內存中的數據集快照,然後寫入磁盤;日誌持久化(AOF),滿足everysec(每秒)/always(每次操作)/no(默認30秒)條件,生成日誌,然後寫入磁盤緩存
多臺服務器:Redis正在開發的Sentinel(哨兵監聽),具體網址:http://redisdoc.com/topic/sentinel.html