sol229 发表于 2018-10-26 11:45:59

Nosql and Mongodb 介绍

  Nosql兴起的背景:
  1)web2.0兴起(高交互性),传统的关系型数据库为了保证“通用性”的设计而带来    了功能复杂,性能开销大,和价格昂贵的问题。
  2)避免不必要的复杂性
  3)更高的吞吐量和高并发
  4)在商用硬件上的水平扩展能力
  5)Nosql实现大表自动切割,更有利于支持分布式处理
  6)在性能和安全方面做了折中(有时不需要sql的很高的安全性)
  7)云计算的需求(从中心模式转到分布模式)
  各种主流Nosql数据库:
  1)memcached数据库:memcached数据库的成功,带动了Nosql运动的热潮
  特点:
  1)它是一个存储键值对儿的hashmap
  2)高性能的分布式内存缓存服务器,常驻内存,用于动态web应用,以减轻
  数据库负载
  3)客户端通过memcached协议与守护进程(daemon)通信
  4)缺乏认证与安全控制(所以应该部署于防火墙的内部)
  5 )基于libevent的事件处理机制(http://baike.haosou.com/doc/1037929-                         1097798.html)
  6)不互相通信的分布式(服务器之间不互相通信)
  2)redis数据库:是一个key-value存储系统,和memcached类似
  1 )运行速度异常快
  2)数据都缓存在内存中,它是有硬盘支持的内存数据库
  3)支持Master-slave复制(主从复制)
  4)支持多种数据类型 如string(字符串),list(链表),set(集合),zset(有序        集合)
  5)支持pop/push机制,允许用户实现消息机制
  3)neo4j数据库:它是基于关系的图型数据库
  1)访问协议:http/rest
  2)可独立使用,或嵌入到java程序中使用
  3)图型的节点和边都可以带有元数据
  4)使用多种方法支持路径搜索
  5)使用键值和关系进行索引
  6)为读操作进行优化
  7)支持事务,企业版还支持在线备份和安全性及监控
  4)Cassandra数据库:非关系型的混合型的数据库,类似于google的     
  bigtable( 基于列的)数据库
  1)由java语言开发
  2 )写操作比读操作更快
  3)分布式,基于column的结构
  4)用户:facebook
  5)Hbase数据库:Hadoop database 是google的bigtable数据库的开源实现
  1)是分布式的,列式的数据库
  2)Hbase利用Hadoop的HDFS作为文件系统,利用Hadoop Mapreduce
  来处理Hbase中的海量数据
  3)采用分布式架构Map/reduce
  4)协议:http/rest,同时支持thirft
  5)适用于大数据
  6)Mongodb数据库:
  1)社区非常活跃,文档丰富,由10gen公司商业支持,持续性有保障
  2)所用语言:c++
  3)保存了sql的某些优良特性(索引,查寻……)
  4)协议:Custom,binary(Bson)
  5)支持Master/slave复制(支持自动错误回复,使用sets复制)
  7)内建分片机制
  8)支持javascript表达式查询,在服务器端可以执行任意js函数
  9)数据存储采用内存到文件的映射
  10)在32位操作系统上,数据库大小限制在2.5G以内,64位系统无限制
  11)空数据库大约占192M
  12) 采用GridFS存储大数据和元数据

页: [1]
查看完整版本: Nosql and Mongodb 介绍