Redis学习笔记——NoSQL

多数据源多数据类型

多数据源多数据类型的存储问题。以淘宝举例:

  1. 商品基本信息:不会经常变动,但经常查询,故使用Mysql进行存储。
  2. 商品描述、详情、评价信息(多文字类):文字类会是读写IO性能变差,使用MongoDB存储。
  3. 商品的图片:采用分布式文件系统,如淘宝的TFS、Hadoop的HDFS、Google的GFS等。
  4. 商品的关键字(搜索引擎):淘宝内用ISearch。
  5. 商品的波段性的热点高频信息:内存数据库,Tair、Redis、Memcache
  6. 商品的交易、价格计算、积分累计:外部系统,外部第三方支付接口,如支付宝

难点

  1. 数据类型多样性
  2. 数据源多样性和变化重构
  3. 数据源改造而数据服务平台不需要大面积重构

解决办法

使用一种统一数据服务平台UDSL,就像JDBC一样,用户只需要会使用相关的API,不需要关心底层如何连接和操作。

NoSQL数据模型简介

聚合模型:
(1)Bson,类似于Json字符串,不需要JoinJoinJoin去多表查询,直接拿到一个ID对应的一坨信息。
(2)KV,键-值关系
(3)列族
Redis学习笔记——NoSQL_第1张图片
(4)图形:例如人际关系,关系型数据库非常难表达。
Redis学习笔记——NoSQL_第2张图片

NoSQL数据库的四大分类

(1)KV键值:
1)新浪:BerkeleyDB+redis
2)美团:redis+tair
3)阿里、百度:memcache+redis
(2)文档型数据库(bson格式比较多)
1)CouchDB
2)MongoDB:基于分布式文件存储的数据库
(3)列存储数据库
1)Cassandra
2)HBase
3)分布式文件系统
(4)图关系数据库:关系(社交网络、广告推荐系统)
1)Neo4J
2)InfoGrid

CAP原理

传统的ACID:
(1)A(Atomicity)原子性
(2)C(Consistency)一致性
(3)I(Isolation)独立性
(4)D(Durability)持久性

CAP:
(1)C(Consistency)强一致性
(2)A(Availability)可用性
(3)P(Partition tolerance)分区容错性
注:CAP只能三选二

BASE:
(1)基本可用(Basically Available)
(2)软状态(Soft state)
(3)最终一致(Eventually consistent)

你可能感兴趣的:(Redis)