什麼是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)豐富的查詢語言
以上是mongodb與redis哪個好的詳細內容。更多資訊請關注PHP中文網其他相關文章!