sql為主干為什么我這樣理解:
單從技術角度來說
- 關系型網格 充分的體現了現實事務
- 對事務,審計,閃存等等對數據的重視所以如何一些特別主要的數據,一定要放到sql里面。一個系統里面至少有用戶信息是重要的數據。
- 所以sql必須有,而且數據存儲的主干
什么時候引入nosql
先看看sql - > sql + nosql的過程。
http://m.ythuaji.com.cn/article/104820.html 為什么要使用NoSQL
這些nosql?
對java語言而言:
- redis:用于緩存 - 讀速度極快(內存中)
- mongoDb - 讀寫事務都是均衡的.node.js開發的json
- Neo4j - .java的的比較像SQL但查詢更快,可惜高級功能收費… - 社交(圖像數據庫)
- Cassandra - 寫數據比讀快.-用于日志的存放。
- HBase 離線分析
我的設想:
java語言而言:
- - redis用于緩存(值里面存javabean)和不需要存儲的熱數據
- - mongoDb用于不太重要的但要儲的內容.
- - Cassandra 用于管理 日志強烈建議(把日志放到數據庫里面。)
- - HBASE 離線分析,大數據
- - solr,ES - 站內搜索和代替里面的SQL等
- - 或者用neo4j代替sql數據庫 , 有對事務要求的時候,單獨起一個優先級為2的線程存到sql里面.
NoSQL紀元
當下已經存在很多的NoSQL數據庫,比如MongoDB、Redis、Riak、HBase、Cassandra等等。每一個都擁有以下幾個特性中的一個:
- 不再使用SQL語言,比如MongoDB、Cassandra就有自己的查詢語言
- 通常是開源項目
- 為集群運行而生
- 弱結構化——不會嚴格的限制數據結構類型
適用的場景
儲存用戶信息,比如會話、配置文件、參數、購物車等等。這些信息一般都和ID(鍵)掛鉤,這種情景下鍵值數據庫是個很好的選擇。
不適用場景
1)取代通過鍵查詢,而是通過值來查詢。Key-Value數據庫中根本沒有通過值查詢的途徑。
2)需要儲存數據之間的關系。在Key-Value數據庫中不能通過兩個或以上的鍵來關聯數據。
3)事務的支持。在Key-Value數據庫中故障產生時不可以進行回滾。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
原文鏈接:https://blog.csdn.net/qq_41720208/article/details/80809335