RethinkDB是什么?—— 面向文档的NOSQL数据库,MVCC+Btree索引,pushes JSON to your apps in realtime采用push思路,优化的ssd存储...
RethinkDB是什么?
RethinkDB是新一代的面向文档的数据库存储管理系统,原本是MySQL中针对SSD优化的一个存储引擎,后来脱离了MySQL成为了独立的系统。
数据如何存储在磁盘上?
数据组织成B-Tree,且使用为rethinkdb定制的log-structured形式的存储引擎存储在磁盘上,这个存储引擎灵感来自BTRFS。这个存储引擎相比其他的存储引擎有很多优势,包括增量的且完全并发的垃圾压缩,低CPU开销和有效的多核操作,一些SSD优化,同时当电源故障后立即恢复,当故障时保证完全的数据一致性,支持MVCC这个存储引擎结合定制的,B-Tree可感知的缓存引擎一起使用,这个缓存引擎允许文件的大小比可用内存的大小多很多数量级。rethinkdb可工作在10GB内存的和1TB的数据上
见:http://bokan.me/2016/05/10/rethinkdb-architecture/
RethinkDB最早是作为一个对SSD进行专门优化的MySQL存储引擎出现的,其特点在于对SSD的充分利用。而目前RethinkDB已经脱离MySQL成为一个独立的存储。RethinkDB是自底向上为实时网页设计的第一个开源的、分布式的、可扩展的数据库,具有强大的集群和自动故障转移功能。传统数据库使用的是一种查询——响应数据库访问模式。RethinkDB 在网络上工作的很好主要是因为它直接映射到 HTTP 的请求响应上面。
RethinkDB是第一个数据库使用了一种令人激动的新的数据库的访问模型,而不是轮询数据库更改,开发者可以命令RethinkDB实时的向应用连续推送更新查询结果。这使得搭建现代、实时的应用程序十分方便:开发者可以得到一个可扩展的实时Web应用程序的App,并在用一小部分时间运行的同时使用更少的工程资源。
Cloud Native Computing基金会称,RethinkDB数据库被数以百计的创业公司、咨询公司和财富五百强企业使用,其中包括NASA、GM、Jive、Platzi、美国国防部、Distractify和 Matters Media。
讨论二:RethinkDB还是MongoDB?
- 网友FlukyS:RethinkDB有超强的伸缩性,它可以处理PB级数据。不过,依据配置,这会导致可用性上做出些妥协,但是在我看来,用户有者很大的掌控权。一致性是RethinkDB考虑最弱的一点。RethinkDB的超级赞的是很易用。我只在开发阶段使用RethinkDB,因为后来公司决定采用MongoDB。
- 网友read_eat_or:可否问下你们(FlukyS)为什么放弃了RethinkDB,而选择了MongoDB?
- 网友FlukyS:坦率地说并不是我做的决定,我只是做了初期的测试,最后由经历决定。我认为可能是因为团队对MongoDB更熟悉吧,这是好几年前的决定,如果现在再来一次结果或许会不同。不管是使用RethinkDB还是MongDB,我们只是保存日志数据而已,并没有用于存放市场商用的数据。我们是读操作远多于写操作。
有一种观点是,RethinkDB是败给了MongoDB,那么或许你还可以再读读MongoDB的相关内容。
其官方介绍如下:
RethinkDB pushes JSON to your apps in realtime.
When your app polls for data, it becomes slow, unscalable, and cumbersome to maintain.
RethinkDB is the open-source, scalable database that makes building realtime apps dramatically easier.
What is RethinkDB?go
r.table('game').orderBy('score').limit(3).changes()
TOP PLAYER SCORES
- connor: 81 points
- marc: 79 points
- mike: 73 points
- samantha: 73 points
- samantha: 64 points
STREAMING RETHINKDB RESULTS...
- {'player': 'joe', 'score': 12}
- {'player': 'eileen', 'score': 50}
- {'player': 'marc', 'score': 79}
- {'player': 'connor', 'score': 81}
- {'player': 'brandon', 'score': 36}
- {'player': 'grant', 'score': 29}
- {'player': 'trevor', 'score': 63}
- {'player': 'samantha', 'score': 73}
- {'player': 'jessica', 'score': 12}
代码:
var pubnub = require("pubnub"); var r = require("rethinkdb");var pn = pubnub({subscribe_key: "xxxxxxxxxxxxxxx",publish_key: "xxxxxxxxxxxxxxx",secret_key: "xxxxxxxxxxxxxxx" });// Connect to a local RethinkDB database r.connect().then(function(conn) {// Attach a changefeed to the `updates` tablereturn r.table("updates").changes()("new_val").run(conn); }) .then(function(changes) {// For each change emitted by the changefeed...changes.each(function(err, item) {// Publish the change through PubNub pn.publish({channel: "updates", message: item,error: function(err) {console.log("Failed to send message:" , err);}});}); });
参考:https://rethinkdb.com/blog/rethinkdb-pubnub/
转载于:https://www.cnblogs.com/bonelee/p/6392528.html
RethinkDB是什么?—— 面向文档的NOSQL数据库,MVCC+Btree索引,pushes JSON to your apps in realtime采用push思路,优化的ssd存储...相关推荐
- 面向文档的NoSQL数据库MongoDB
NoSQL优势 全称:Not Only SQL 不仅仅是数据库 海量的扩展能力 读写高性能 与关系型数据库(RDBMS)相辅相成 NoSQL产品 键值存储型(Key-Value) Redis/Codi ...
- 盘点11个面向文档的开源NoSQL数据库
MongoDB是一个介于关系数据库和非关系数据库之间的产品, 是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型. ...
- MongoDB-概述:跨平台的面向文档的高性能高可用性易扩展数据库
Table of Contents MongoDB-概述 数据库 采集 文件 样本文件 MongoDB教程 MongoDB-优势 MongoDB与RDBMS相比的优势 为什么要使用MongoDB? 在 ...
- 论文解读丨LayoutLM: 面向文档理解的文本与版面预训练
摘要:LayoutLM模型利用大规模无标注文档数据集进行文本与版面的联合预训练,在多个下游的文档理解任务上取得了领先的结果. 本文分享自华为云社区<论文解读系列二十五:LayoutLM: 面向文 ...
- MongoDB实战读书笔记(二):面向文档的数据
1 schema设计原则 1.1 关系型数据库的三大设计范式 第一范式(1NF)无重复的列 第二范式(2NF)属性完全依赖于主键 [ 消除部分子函数依赖 ] 第三范式(3NF)属性不依赖于其它非主属性 ...
- 用python将word文档导入数据库_python读取word文档,插入mysql数据库的示例代码
表格内容如下: 1.实现批量导入word文档,取文档标题中的数字作为编号 2.除取上面打钩的内容需要匹配出来入库入库,其他内容全部直接入库mysql # wuyanfeng # -*- coding: ...
- 软件工程文档中的数据库模型设计
背景:软件工程文档之<数据库设计说明书>的结构设计部分要明确规划出数据库的概念结构设计.逻辑结构设计.物理结构设计,就是设计数据库的概念模型.逻辑模型.物理模型,那么,何为数据库的概念模型 ...
- linux文本文件导入数据库,Linux系统下如何将txt文档导入到数据库mysql的方法教程...
前段时间做小项目的时候遇到了一个需求:把txt文档的数据导入到mysql数据库中,开始本来想直接用Mysql Workbench导入TXT文件,但是最后发现不支持TXT导入,结果我吧嗒吧嗒的去把TXT ...
- mysql导出设计文档_Mysql导出数据库设计文档
在word中,利用ODBC驱动源,OFFICE宏来控制报表输出 作者博客地址: 下载工具 工具下载: 链接: 提取码:mhtd 根据Mysql数据库的版本下载想用的驱动源 也可去官网下载: 双击安装O ...
最新文章
- access vba 常量数组赋值_VBA数组是什么?有何作用?别担心,你只需用1分钟就明白它是什么...
- 决策树Decision Tree
- HDU - 3551 Hard Problem(一般图最大匹配)
- 机器学习入门02-朴素贝叶斯原理和java实现
- 计算机科学与技术考研课程安排,计算机科学与技术(0812)硕士研究生培养方案(一)...
- 从王者荣耀里我学会的前端新手指引
- linux内核分析与应用 -- 并发(上)
- 虚拟机安装Linux,设置固态ip,静态ip地址,docker安装
- 手机日志抓取工具及注意事项
- Google 因果推断的CausalImpact 贝叶斯结构时间序列模型(二十二)
- python中counter怎么用_带你走进python 计数器类Counter的用法
- 海马模拟器怎么连接android studio
- html css径向渐变,如何实现css3径向渐变如何定义中心和大小形状
- python中max函数的用法解析
- python网络爬虫(第八章:图像识别与文字处理)
- 关于freemarker(网上收集资料)
- 【Marva Collins' Way】第一章
- 高龄白菜java学习第109天(java数据结构和算法(27))
- 不同主体的微信小程序相互跳转
- html5用一张图片铺满屏幕,html5绘图铺满整个屏幕
热门文章
- MySQL和Linux试题_Linux运维必会的MySql题之(一)
- 我的理想计算机系100字,我的理想作文100字(通用5篇)
- mysql mydumper_采用mydumper对MySQL部分数据库进行热备
- lin通讯从节点同步间隔场_低成本总线技术——LIN总线协议规范介绍
- elasticsearch组件的安装启动,测试等(windows)
- 做了5年Java,java读写锁使用
- 【机器学习入门到精通系列】机器学习系统设计(Precision Recall)
- ORACLE not available如何解决
- bindservice启动服务
- 二叉树求深度的递归的详细分析