首頁  >  文章  >  資料庫  >  redis和mongodb選哪個好

redis和mongodb選哪個好

anonymity
anonymity原創
2019-06-05 16:22:102806瀏覽

Redis是什麼?

Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value非關係型資料庫,並提供多種語言的API。 redis是一個key-value儲存系統。 Redis是非關係型資料庫的一種,常用作快取。

redis和mongodb選哪個好

和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.支援簡單的事務需求,但業界使用場景很少,並不成熟。

Redis的缺點:

1.Redis只能使用單線程,效能受限於CPU效能,故單實例CPU最高才可能達到5-6wQPS每秒(取決於資料結構,資料大小以及伺服器硬體效能,日常環境中QPS高峰大約在1-2w左右)。

2.支援簡單的事務需求,但業界使用場景很少,並不成熟,既是優點也是缺點。

3.Redis在string類型上會消耗較多內存,可以使用dict(hash表)壓縮存儲以降低內存耗用。

4.Mc和Redis都是Key-Value類型,不適合在不同資料集之間建立關係,也不適合進行查詢搜尋。例如redis的keys pattern這種比對操作,對redis的效能就是災難。

MongoDB是什麼?

MongoDB是一個基於分散式檔案儲存的資料庫。先解釋文檔的資料庫,也就是可以存放xml、json、bson類型系那個的資料。同時MongoDB是由C 語言編寫。旨在為WEB應用提供可擴展的高效能資料儲存解決方案。是介於關聯式資料庫與非關聯式資料庫之間的產品,是非關聯式資料庫當中功能最豐富,最像關聯式資料庫的。

它支援的資料結構非常鬆散,是類似json的bson格式,因此可以儲存比較複雜的資料類型。 Mongo最大的特點是它支援的查詢語言非常強大,其語法有點類似於物件導向的查詢語言,幾乎可以實現類似關係型資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。

mongodb與mysql不同,mysql的每一次更新操作都會直接寫入硬碟,但是mongo不會,做為記憶體型資料庫,資料操作會先寫入內存,然後再持久到硬碟中去,但MongoDB採用的預先分配空間的方式來防止檔案碎片,所以MongoDB的資料檔案很大。

MongoDB的特點是:

(1)以文件為導向(2)高效能(3)高可用(4)易擴充(5)豐富的查詢語言

以上是redis和mongodb選哪個好的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:redis怎麼加鎖下一篇:redis怎麼加鎖