mongodb與redis哪個好

mongodb與redis哪個好

什么是redis?

Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value非關系型數據庫,并提供多種語言的API。redis是一個key-value存儲系統。Redis是非關系型數據庫的一種,經常用作緩存。

和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set –有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。

與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步。

redis優點

1.支持多種數據結構,如 string(字符串)、 list(雙向鏈表)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基數估算)

2.支持持久化操作,可以進行aof及rdb數據持久化到磁盤,從而進行數據備份或數據恢復等操作,較好的防止數據丟失的手段。

3.支持通過Replication進行數據復制,通過master-slave機制,可以實時進行數據的同步復制,支持多級復制和增量復制,master-slave機制是Redis進行HA的重要手段。

單線程請求,所有命令串行執行,并發情況下不需要考慮數據一致性問題。

4.支持pub/sub消息訂閱機制,可以用來進行消息訂閱與通知。

5.支持簡單的事務需求,但業界使用場景很少,并不成熟。

什么是mongodb?

MongoDB是一個基于分布式文件存儲的數據庫。先解釋一下文檔的數據庫,即可以存放xml、json、bson類型系那個的數據。同時MongoDB是由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。 是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。

它支持的數據結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。

mongodb優點

mongodb與mysql不同,mysql的每一次更新操作都會直接寫入硬盤,但是mongo不會,做為內存型數據庫,數據操作會先寫入內存,然后再會持久化到硬盤中去 ,但MongoDB采用的預分配空間的方式來防止文件碎片,所以MongoDB的數據文件很大。

mongodb最大的特點

(1)面向文檔(2)高性能(3)高可用(4)易擴展(5)豐富的查詢語言

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享