🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 4.2 NoSQL数据库 ## 4.2 NoSQL数据库 NoSQL数据库是一种非关系型数据库。跟使用SQL的关系型数据库相比,它具有以下一些特点: - 无模式(schema) - 易于水平扩展(horizontal scaling) - 需要为查询而设计文档结构 - 对事务(transaction)的支持有限,或需要用户自己实现 常见的NoSQL数据库有两类:面向文档的(document-oriented)数据库和“键-值”(key-value)数据库。前者往往以JSON文档作为数据存储,如[MongoDB](https://www.mongodb.org/);后者就像一个Hash表,把数据按“键-值”对存储,而且往往整个数据库都位于内存中以实现较快的存取速度(因而常作为缓存使用),如[Redis](http://redis.io/),[Memcached](http://www.memcached.org/)。 需要指出的是,现在已经有不少SQL数据库支持JSON文档的存储和查询,如MySQL(从版本5.7开始),PostgreSQL(从版本9.4开始)和Oracle,这使得SQL数据库和NoSQL数据库的边界变得模糊,对用户来说则意味着更多的选择。 ### 流行的开源NoSQL数据库 - [MongoDB](https://www.mongodb.org/)是一种具有高扩展性(scalability)的文档数据库,常用于大数据[1](#fn_1)存储。 - [Redis](http://redis.io/)是一种多功能的“键-值”数据库:不但可以用作缓存,还可以用作消息代理(message broker)实现[“订阅/发布”模式](https://redis.io/topics/pubsub)。 - [Memcached](http://www.memcached.org/)是一种高性能的、专用于缓存的“键-值”数据库。 更多关于NoSQL数据库的介绍和产品可参考:<https://en.wikipedia.org/wiki/NoSQL> > 1. 大数据专指海量数据,几个甚至几十个GB的数据其实算不上“大”,一般的SQL数据库即可处理。[↩](#reffn_1 "Jump back to footnote [1] in the text.")