一、为什么要使用Nosql

  今天我们可以通过第三方平台(如:google,facebook)可以很容易的访问和抓取数据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。我们如果要对这些用户数据进行挖掘,那么Sql数据库已经不适合这些应用了,NoSql数据库的发展却能很好的处理这些大的数据。

二、什么是NoSql

  NoSql(NoSql = Not Only SQL),不仅仅是sql

  泛指非关系型数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库产生就是为了解决大规模数据集合多重数据类型带来的挑战,尤其是大数据应用的难题,包括超大规模的数据储存。

  这些类型的数据库存储不需要固定的模式,无需多余的操作就可以横向扩展。

三、NoSql可以做什么

  1.易扩展

    NoSql数据库种类繁多,但是一个共同的特点是去掉关系数据库的关系特性 。

    数据之间无关系,这样就非常容易扩展。也无形之间,在架构层面上带来了可扩展的能力。

  2.大数据量高性能

    NoSql数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库结构简单。

    一般MySql使用Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache。在针对web2.0的交互频繁的应用,Cache性能不高,而NoSql的Cache是记录级的,是一种细粒度的Cache,所以NoSql在这个层面上 来说就要性能高很多了。

  3.多样灵活的数据模型

    NoSql无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而非关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。

  4.RDBMS vs NoSql

    RDBMS

      - 高度组织化结构化数据

      - 结构化查询语言(SQL)

      - 数据和关系都存储在单独的表中

      - 数据操纵语言,数据定义语言

      - 严格的一致性

      - 基础事务

    NoSql

      - 代表着不仅仅是sql

      - 没有声明性查询语言

      - 没有预定义的模式

      - 键 - 值对存储,列存储,文档存储,图形数据

      - 最终一致性,而非ACID属性

      - 非结构化和不可预知的数据

      - CAP定理

      - 高性能,高可用性和伸缩性

四、怎么玩(在此先提一下,后面详细介绍)

  1.KV

  2.Cache

  3.Persistence

五、3V+3高

  大数据时代的3v(海量【Volume】,多样【Variety】,实时【Velocity】)

  互联网需求的3高(高并发,高扩展,高性能)

六、多数据源类型的存储问题(以阿里巴巴中文网首页为例)

  1.商品基本信息

    名称、价格、出厂日期、生产商等几乎不变的冷数据存放在关系型数据库 mysql/oracle中,目前淘宝在去O化(拿掉Oracle),而淘宝内部使用的Mysql也是阿里自己改造过的。

  2.商品的描述、详情、评价信息(多文字类型)

    多文字信息描述类,IO读写性能变差,存放文档数据库MongDB中

  3.商品的图片

    商品图片展示类存放在分布式的文件系统中(淘宝的TFS, google的GFS, hadoop的HDFS)

  4.商品的关键字

    搜索引擎,淘宝内用ISearch

  5.商品的波段性热点高频信息

    内存数据库Tair、Redis、Memcache

  6.商品的交易、价格计算、积分累计

    外部系统,外部第三方支付接口,支付宝

  总结大型互联网应用(大数据、高并发、多样数据类型)难点和解决方案

   难点:

    1.数据类型多样性

    2.数据源多样性和变化重构

    3.数据源改造而数据服务平台不需要大面积重构

   解决方案:

    EAI和统一数据平台服务层(UDSL)

redis_NoSql入门概述的更多相关文章

  1. redis_NoSql入门概述数据模型简介

    以下面的背景去对比关系型数据库和非关系型数据库的差异(一个电商客户.订单.订购.地址模型来对比以下关系型数据库和非关系型数据库) 传统数据库一般设计会使用ER图(1:1/1:N/N:N,主键等) 而N ...

  2. NoSQL入门概述

    入门概述 1 NoSQL是什么? NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关 ...

  3. ShoneSharp语言(S#)的设计和使用介绍系列(4)— 入门概述

    ShoneSharp语言(S#)的设计和使用介绍 系列(4)- 入门概述 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...

  4. SpringCloud入门概述

    SpringCloud入门概述 Spring的三大模块:SpringBoot(构建),Spring Cloud(协调),Spring Cloud Data Flow(连接)注意:Spring Boot ...

  5. 004-React入门概述

    一.概述 参考地址:https://reactjs.org/docs/try-react.html 1.1.本地快速体验 <!DOCTYPE html> <html> < ...

  6. 一、Hadoop入门概述

    一.Hadoop是什么 Hadoop是一个由Apche基金会所开发的分布式系统基础架构. 主要解决海量数据的存储和海量数据的分析计算问题. 广义上来说,Hadoop通常是指一个更广泛的概念—Hadoo ...

  7. BootStrap基础入门概述总结

    是否还值得学习BootStrap 因为自己还是学生,自己在学习之前就先在网上看了看BootStrap是否在现在依旧流行,是否还值得学习. 以下是网友的一些评价: 20年11月 Bootstrap作为入 ...

  8. 领域模型驱动设计(Domain Driven Design)入门概述

    软件开发要干什么: 反映真实世界要自动化的业务流程 解决现实问题 领域Domain Domain特指软件关注的领域 在不能充分了解业务领域的情况下是不可能做出一个好的软件 领域建模 领域模型驱动设计 ...

  9. MVC系列之一 入门概述

    一 概述 MVC作为一种当前比较好的开发web的框架,不得不提一下了,和WebForm比较来看,有了很大的进步和改进. 先进行一个简单的比较,两个都是Web开发框架,理念仍然是较快速开发. 不过MVC ...

随机推荐

  1. 使用TortoiseGit时如何实现SSH免密码登录

    1.      Git配置 连接GIT服务器使用的是SSH连接,因此无密码登录,需要使用公钥和私钥. 1)     生成公钥/私钥 在Git Shell中输入ssh-keygen命令,直接回车使用默认 ...

  2. $this->success()传值不完整

    public function manager_doExport() { $search=$_POST['search']; //前台输入2017-12-1,即,$search['starttime' ...

  3. sql统计字符串出现次数技巧

    在牛客网上看到一道题,感觉挺有趣,是用sql统计字符串出现的次数. 这里提供一种思路,比如统计字符串A中子串B的出现次数: SELECT (LENGTH(A) - LENGTH(REPLACE(A, ...

  4. JSP分页之结合Bootstrap分页插件进行简单分页

    结合Bootstrap的分页插件实现分页,其中策略是每次显示5个按钮,然后根据当前页的不同来进行不同的显示: 1. 当前页<3,如果当前页大于5页就显示前五页,不然就显示1~totalPage. ...

  5. Knockout双向绑定

    knockout双工绑定基于 observe 模式,性能高.核心就是observable对象的定义.这个函数最后返回了一个也叫做 observable 的函数,也就是用户定义值的读写器(accesso ...

  6. jQuery()方法的第二个参数详解

    关于jQuery()方法的第二个参数,有下面这几种用法: 1.jQuery(selector, [context]) 这种用法,相当于 $(context).find(selector) 或者 con ...

  7. thinkphp搜索排序

  8. Android中注册获取验证码倒计时按钮

    public class CountDownTimerUtils extends CountDownTimer { private TextView mTextView; /** * @param t ...

  9. UBIFS学习笔记

    在做项目的时候,发现flash芯片有异常现象,经过打印分析,发现是UBIFS方面设置有一些问题,经过查阅一部分资料,最终得到问题的答案. 在解决问题的过程中,发现打印信息比较重要,但网上并没有直接的相 ...

  10. java版云笔记(七)之事务管理

    事务管理 事务:程序为了保证业务处理的完整性,执行的一条或多条SQL语句. 事务管理:对事务中的SQL语句进行提交或者回滚. 事物管理对于企业应用来说是至关重要的,好使出现异常情况,它也可以保证数据的 ...