CouchDB
CouchDB 是一个非关系型的数据库,官方的标语是这么说的:
Seamless multi-master sync, that scales from Big Data to Mobile, with an Intuitive HTTP/JSON API and designed for Reliability.
From: Apache CouchDB
翻译过来是:无缝的多主机同步,从大数据扩展到手机,直观的HTTP / JSON API,可靠性设计。
维基百科有段介绍
Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库"。它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库。其中一个显著的功能就是多主复制。CouchDB的第一个版本发布在2005年,在2008年成为了Apache的项目。
From: CouchDB - 维基百科,自由的百科全书
其“完全拥抱Web的数据库”我认为是实至名归,大概有这么几点:
- 存储格式为 JSON
- HTTP 接口
- 支持跨域访问
- 自带了可视化的管理后台
- 用户和权限控制
- 数据复制,并且可以设置定时任务
- 分布式存储
如果你需要创建一条数据,你只需要发送一个 HTTP PUT 请求,带上你的 JSON 数据,其中包含一个不冲突的 _id,就好了。而且数据库本身可以配置跨域访问。这意味着你可以在浏览器里搞这个,不管是通过 XMLHttpRequest 还是使用最新的 Fetch API,你可以直接在浏览器里去存取数据库的数据。
另一方面,你可以在多个 CouchDB 之间自由,双向的复制你的数据,添加定时任务去备份你的数据。
PouchDB
然后是 PouchDB
PouchDB is an open-source JavaScript database inspired by Apache CouchDB that is designed to run well within the browser.
PouchDB was created to help web developers build applications that work as well offline as they do online. It enables applications to store data locally while offline, then synchronize it with CouchDB and compatible servers when the application is back online, keeping the user’s data in sync no matter where they next login.
PouchDB 是一个开源 JavaScript 数据库,灵感来自 Apache CouchDB,旨在在浏览器中运行良好。
PouchDB 被创建以帮助 Web 开发人员构建与在线状态一样脱机的应用程序。它允许应用程序在本地脱机存储数据,然后在应用程序重新联机时与 CouchDB 和兼容服务器同步,无论用户的数据在何处登录,都可以保持同步。
PouchDB 解决了另外的问题:它把调用数据库这个环节搞定了,现在你不需要自己去写 AJAX 请求,而可以直接处理你的数据了。还有它可以把数据存储在本地,等待需要的时候同步到远端的数据库了。