如何評價RethinkDB?和MongoDB,Redis有什麼區別?
01-03
卸腰。 剛面試完 RethinkDB, 估計要跪(但是能和 Salva 大神聊天我已經很滿足了)。
這三個都用過點,隨便扯扯。RethinkDB 簡直是 NoSQL 中的黑科技,被網友譽為"MongoDB done things right",賣點是 實時性。
比如:+ 自帶 Admin UI,就是資料庫在跑的時候,後台有個非常棒的管理界面,可以直接用上面的 consle 查詢+ UI 上 一鍵 sharding 和 replica,方便的令人髮指。+ 最新的2.1版本加入牛 X 的 Raft 演算法(可以理解為 consensus algorithm中的 Paxo)。
+ 支持的 driver 齊全。這比較邪門,用戶量不算怎麼大,什麼 Dart, Elixir, Lua, Nim, Haskell 甚至 Common Lisp 的 driver 都有。適合場景:
+ 實時。所以遊戲挺適合的。+ SSD 硬碟。缺點:+ 還是比較早期,一般 query 比 MongoDB 要慢3倍甚至更多。考慮到他們團隊才17個人,和 MongoDB 的規模不能比,給幾年時間,說不定能幹翻 MongoDB。
MongoDB
和 RethinkDB 用 json 存儲不同,MongoDB 把它二進位成 bson。中規中矩,NoSQL 中比較主流。+ Transaction:單個 document更新是原子性的,這點和 RethinkDB 一樣。多個 document更新要保持原子性需要用 Two Phase Commit(好像是2.8加上的,如果錯了請糾正),這個 RethinkDB 沒有。+ Authorization。網上裸奔著無數沒有驗證的 27017 埠。RethinkDB 一開始就沒打算設計這個,見 Salva 的 Consider a design for access control · Issue #266 · rethinkdb/rethinkdb · GitHub。
+ 文檔教程等資料比較多。還是有錢。工程師里好多北歐的,好多禿頭的,一看就功力不凡。Redis:in memory 的 key-value cache。和上面倆不是一類東西。了解太淺,還是看看別人的怎麼答的吧。今天rethinkdb公司已經倒閉了 未來項目將以社區驅動方式開發
有能力開發資料庫,幹嘛還要做資料庫,做個區塊鏈不是更好?
推薦閱讀:
※新浪微博「點贊功能」資料庫如何設計的?
※如何用redis/memcache做Mysql緩存層?
※各種內存NoSQL,什麼情況下才有必要使用,SQL性能真的很糟糕?
※怎樣理解分析王垠文章《SQL,NoSQL 以及資料庫的實質》的觀點?
※Redis集群方案應該怎麼做?