Nosql兴起的背景:
1)web2.0兴起(高交互性),传统的关系型数据库为了保证“通用性”的设计而带来 了功能复杂,性能开销大,和价格昂贵的问题。
2)避免不必要的复杂性
3)更高的吞吐量和高并发
4)在商用硬件上的水平扩展能力
6)在性能和安全方面做了折中(有时不需要sql的很高的安全性)
7)云计算的需求(从中心模式转到分布模式)
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 )运行速度异常快
3)支持Master-slave复制(主从复制)
4)支持多种数据类型 如string(字符串),list(链表),set(集合),zset(有序 集合)
1)访问协议:http/rest
2)可独立使用,或嵌入到java程序中使用
3)图型的节点和边都可以带有元数据
5)使用键值和关系进行索引
6)为读操作进行优化
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存储大数据和元数据
原文链接:https://www.f2er.com/nosql/203947.html