NoSQL和传统数据库的区别
Redis 等 NoSQL 工具也能夠存儲數(shù)據(jù),有人認為 NoSQL 來會取代數(shù)據(jù)庫,但是我不那么認為,我們要理解 NoSQL 和傳統(tǒng)數(shù)據(jù)庫的差異。
首先,NoSQL 的數(shù)據(jù)主要存儲在內存中(部分可以持久化到磁盤),而數(shù)據(jù)庫主要是磁盤。其次,NoSQL 數(shù)據(jù)結構比較簡單,雖然能處理很多的問題,但是其功能畢竟是有限的,不如數(shù)據(jù)庫的 SQL 語句強大,支持更為復雜的計算。
再次,NoSQL 并不完全安全穩(wěn)定,由于它基于內存,一旦停電或者機器故障數(shù)據(jù)就很容易丟失數(shù)據(jù),其持久化能力也是有限的,而基于磁盤的數(shù)據(jù)庫則不會出現(xiàn)這樣的問題。最后,其數(shù)據(jù)完整性、事務能力、安全性、可靠性及可擴展性都遠不及數(shù)據(jù)庫。
基于以上原因,我不認為 NoSQL 會取代數(shù)據(jù)庫。
毫無疑問,Redis 作為一種 NoSQL 是十分成功的,但是它的成功主要是解決互聯(lián)網系統(tǒng)的一些問題,而主要的問題是性能問題。
實際上,在互聯(lián)網系統(tǒng)大部分的業(yè)務場景中,業(yè)務都是相對簡單的,而難以處理的問題主要是性能問題,特別是那些會員數(shù)比較多的高并發(fā)服務網站。
例如,你可以常常在淘寶或者京東網站上看到一個即將被搶購的商品,有多達幾萬人的關注,可能一個時刻就發(fā)生了成千上萬筆業(yè)務,此時使用 Redis 作為緩存數(shù)據(jù),就可以明顯提升系統(tǒng)的性能,而且這十分有效。
基于兩者之間的區(qū)別,我認為使用 NoSQL 去取代數(shù)據(jù)庫,目前還做不到,但是作為一種提高互聯(lián)網應用性能的輔助工具,它十分有用。
總結
以上是生活随笔為你收集整理的NoSQL和传统数据库的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 判断文件是否隐藏
- 下一篇: 从RedisTemplate中获得Jed