114 NOSQL的四大类型 文档数据库 图数据库 Couchbase QNeo4j a Mark Logic mongoDB Infinite Graph The Distributed Graph Database 键值数据库 列族数据库 redIs aCCUmULO n amazon HYPERTABLE DynamoDB 可riak Ag cassandra HB3AS自 AEROSPIKE Amazon SimpleDB
11.4 NoSQL的四大类型 文档数据库 图数据库 键值数据库 列族数据库
114.1键值数据库 相关产品 Redis、Riak、 SimpleDB、 Chordless、 Scalaris、 Memcached 键/值对 数据模型键是一个字符串对象 值可以是任意类型的数据,比如整型、字符型、数组、列表、集合等 涉及频繁读写、拥有简单数据模型的应用 典型应用内容缓存,比如会话、配置文件、参数、购物车等 存储配置和用户数据信息的移动应用 优点 扩展性好,灵活性好,大量写操作时性能高 缺点 无法存储结构化信息,条件查询效率较低 不是通过键而是通过值来査:键值数据库根本没有通过值查询的途径 不适用情形需要存储数据之间的关系:在键值数据库中,不能通过两个或两个以上 的键来关联数据 需要事务的支持:在一些键值数据库中,产生故障时,不可以回滚 百度云数据库(Reds)、 Github(Rak)、 BestBuy(Riak)、 Twitter 使用者 ( Redis和 Memcached)、 StackOverFlow( Redis)、 Instagram (Redis Youtube(Memcached ), Wikipedia( Memcached
11.4.1 键值数据库 相关产品 Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached 数据模型 键/值对 键是一个字符串对象 值可以是任意类型的数据,比如整型、字符型、数组、列表、集合等 典型应用 涉及频繁读写、拥有简单数据模型的应用 内容缓存,比如会话、配置文件、参数、购物车等 存储配置和用户数据信息的移动应用 优点 扩展性好,灵活性好,大量写操作时性能高 缺点 无法存储结构化信息,条件查询效率较低 不适用情形 不是通过键而是通过值来查:键值数据库根本没有通过值查询的途径 需要存储数据之间的关系:在键值数据库中,不能通过两个或两个以上 的键来关联数据 需要事务的支持:在一些键值数据库中,产生故障时,不可以回滚 使用者 百度云数据库(Redis)、GitHub(Riak)、BestBuy(Riak)、Twitter (Redis和Memcached)、StackOverFlow(Redis)、Instagram (Redis)、Youtube(Memcached)、Wikipedia(Memcached)
114.1键值数据库 浏览器 ↑↑ 应用服务器 memcached‖ memcached RDBMSI RDBMS memcached memcached 首次访问:从 RDBMS中取得数据保存到 memcached 第二次后:从 memcached中取得数据显示页面 键值数据库成为理想的缓冲层解决方案 Redis有时候会被人们称为“强化版的 Memcached"” 支持持久化、数据恢复、更多数据类型
11.4.1 键值数据库 键值数据库成为理想的缓冲层解决方案 Redis有时候会被人们称为“强化版的Memcached” 支持持久化、数据恢复、更多数据类型
114.2列族数据库 相关产品 Bigtable、 HBase、 Cassandra、 HadoopDB、 Green Plum、 PNUTS 数据模型 列族 分布式数据存储与管理 数据在地理上分布于多个数据中心的应用程序 典型应用 可以容忍副本中存在短期不一致情况的应用程序 拥有动态字段的应用程序 拥有潜在大量数据的应用程序,大到几百TB的数据 优点 查找速度快,可扩展性强,容易进行分布式扩展,复杂性低 缺点 功能较少,大都不支持强事务一致性 不适用情形 需要ACID事务支持的情形, Cassandra等产品就不适用 Ebay(Cassandra), Instagram( Cassandra) NASA 使用者 Cassandra) Twitter Cassandra and HBase) Facebook (HBase) Yahoo! HBase
11.4.2 列族数据库 相关产品 BigTable、HBase、Cassandra、HadoopDB、GreenPlum、 PNUTS 数据模型 列族 典型应用 分布式数据存储与管理 数据在地理上分布于多个数据中心的应用程序 可以容忍副本中存在短期不一致情况的应用程序 拥有动态字段的应用程序 拥有潜在大量数据的应用程序,大到几百TB的数据 优点 查找速度快,可扩展性强,容易进行分布式扩展,复杂性低 缺点 功能较少,大都不支持强事务一致性 不适用情形 需要ACID事务支持的情形,Cassandra等产品就不适用 使用者 Ebay(Cassandra)、Instagram(Cassandra)、NASA (Cassandra)、Twitter(Cassandra and HBase)、Facebook (HBase)、Yahoo!(HBase)
114.3文档数据库 “文档”其实是一个数据记录,这个记录能够对包含的数据类型和内容进行“自 我描述”。XML文档、HTML文档和JSON文档就属于这一类。 SequoiaDB就是 使用JSON格式的文档数据库,它的存储的数据是这样的: Sequoia Tel “ Office”:“123123”,“ Mobile “132132132 “Addr”:“ China,GZ” 个XML文档: 关系数据库: <configuration> 必须有 schema信息才能理解数据的含义 ≤ property> <name>hbase. rootdirs/name> 学生(学号,姓名,性别,年龄,系,年级) <value>hdfs; //localhost9 000/hbase</value </property> (1001,张三,男,20,计算机,2002)</ configuration>
11.4.3 文档数据库 “文档”其实是一个数据记录,这个记录能够对包含的数据类型和内容进行“自 我描述”。XML文档、HTML文档和JSON 文档就属于这一类。SequoiaDB就是 使用JSON格式的文档数据库,它的存储的数据是这样的: 关系数据库: 必须有schema信息才能理解数据的含义 学生(学号,姓名,性别,年龄,系,年级) (1001,张三,男,20,计算机,2002) 一个XML文档: <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://localhost:9000/hbase</value> </property> </configuration>