如何评价RethinkDB?和MongoDB,Redis有什么区别?

2022-04-08 00:00:00 专区 订阅 付费 原子 实时
卸腰。 刚面试完 RethinkDB, 估计要跪(但是能和 Salva 大神聊天我已经很满足了)。

这三个都用过点,随便扯扯。

RethinkDB 简直是 NoSQL 中的黑科技,被网友誉为"MongoDB done things right",卖点是 实时性。

比如:

+ 自带 Admin UI,就是数据库在跑的时候,后台有个非常棒的管理界面,可以直接用上面的 consle 查询

+ UI 上 一键 sharding 和 replica,方便的令人发指。

+ 支持 table 间 join,甚至是 distributed join(斜眼看了下 MongoDB)。

+ Unix pipe 形式的 query language。有点像 pyspark 的那种操作,简单易懂,好调试。

+ 新的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。和上面俩不是一类东西。了解太浅,还是看看别人的怎么答的吧。

相关文章