欢迎来到天天文库
浏览记录
ID:1356598
大小:1022.34 KB
页数:47页
时间:2017-11-10
《mongodb开发使用手册》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MongoDB开发使用手册一.基础部分MongDB简介1.NOSQL历史和产生原因原因:互联网用户数的增长和用户参与互联网习惯的改变1.初始的静态内容网站,提供中心化的内容服务,特点:中心化,用户阅读内容系统:Apache2.动态网页内容,电子商务和论坛网站出现。特点:用户访问动态内容,并提供少量内容系统:Apache+Mysql+Php,IIS+ASP+SQLSERVER,IIS+ASP.net+SQLSERVER,TOMCAT+JSP+ORACLE3.博客出现:去中心化网站出现。特点:Web2.0网站的雏形用户阅读内容,并开始更多地参与网站的交互系统:高并发访问,数据
2、库压力增大Memcached缓存的出现,并出现数据库集群的概念4.微博,淘宝等网站出现,以及云计算平台出现,如google,百度广告,等大规模系统特点:用户重复参与网站交互,和内容提供,而系统需要对用户行为进行分析系统:支持高并发,及时响应,并能够实现分布式计算NOSQL:Memcached,Redis,Hbase,等NOSQL数据库,不仅仅是简单缓存,并能够提供分布式要求,包括复制,分片,水平分区,并提供复杂格式的数据存储总结:1.高并发读写操作普通关系型数据库,很难满足高并发读写的要求,上万次读写的需求2.海量数据存储上亿用户产生大量数据,包括用户数据,访问日志,用户
3、提供内容,用户状态记录等,这种海量数据的存储,关系型数据库已经很难满足,尤其是从海量数据中提取和汇总数据成为瓶颈3.高可用性和高扩展性关系型数据库也能支持,同步复制,水平分区扩展,但维护工作相当繁杂,并很难做到热扩展4.内存操作(快速),并发量高(非阻塞进程),硬盘回写(数据完整和高效的平衡),备份和恢复复制(高可用性,和连续服务),分片(热扩展,海量数据)操作简单(JSON),负载均衡,分布式部署(局域网,和物理部分),事务支持2.主流的NOSQL介绍数据库类型开发语言特性应用场景CouchDBErlang特点:DB一致性,易于使用使用许可:Apache协议:HTTP/
4、REST双向数据复制持续进行或临时处理处理时带冲突检查因此,采用的是master-master复制(见编注2)MVCC-写操作不阻塞读操作可保存文件之前的版本Crash-only(可靠的)设计需要不时地进行数据压缩视图:嵌入式映射/减少格式化视图:列表显示支持进行服务器端文档验证支持认证根据变化实时更新支持附件处理因此,CouchApps(独立的js应用程序)需要jQuery程序库适用于数据变化较少,执行预定义查询,进行数据统计的应用程序。适用于需要提供数据版本支持的应用程序。如CMS系统,数据统计汇总RedisC特点:运行异常快使用许可:BSD协议:类Telnet1.读
5、写操作异常快2.较复杂的数据格式sets,链表,hash3.事务支持4.消息订阅pub/sub5.主从同步复制6.硬盘回写7.第三方sharding支持适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序股票价格、数据分析、实时数据搜集、实时通讯配置下发,全局实时数据MongodbC++特点:保留了SQL一些友好的特性(查询,索引)。使用许可:AGPL(发起者:Apache)协议:Custom,binary(BSON)1.支持javascript表达式2.硬盘回写3.主从复制和集群功能4.内建分片机制1.大数据量查询和汇总2.分布式部署,和水平扩展数据统计汇总业务
6、数据库,替代Mysql1.较快读写性能2.大格式数据支持7.空数据库大约占192Mb8.事务支持Neo4jJava特点:基于关系的图形数据库使用许可:GPL,其中一些特性使用AGPL/商业许可协议:HTTP/REST(或嵌入在Java中)1.可独立使用或嵌入到Java应用程序2.图形的节点和边都可以带有元数据3.很好的自带web管理功能4.使用多种算法支持路径搜索5.使用键值和关系进行索引6.支持事务(用Javaapi)7.使用Gremlin图形遍历语言8.支持Groovy脚本9.支持在线备份,高级监控及高可靠性支持使用适用于图形一类数据。这是Neo4j与其他nosql数
7、据库的最显著区别例如:社会关系,公共交通网络,地图及网络拓谱HBaseJava特点:支持数十亿行X上百万列使用许可:Apache协议:HTTP/REST(支持Thrift,见编注4)1.采用分布式架构Map/reduce2.对实时查询进行优化3.高性能Thrift网关4.通过在server端扫描及过滤实现对查询操作预判5.支持XML,Protobuf,和binary的HTTP6.对配置改变和较小的升级都会重新回滚7.不会出现单点故障适用于偏好BigTable:)并且需要对大数据进行随机、实时访问的场合报表,数据挖掘Memcac
此文档下载收益归作者所有