1.关系型数据库与非关系型数据库的区别

Tables 关系型数据库 非关系型数据库
成本 好的收费 开源的,都免费的
存储与查询 硬盘存储,相对查的慢 内存存储,查的快
存储格式 只能是基本格式 多种多样
年龄 出现时间较长,较成熟 后起之秀,不可小觑
扩展性 join等不好扩展 方便集群
事务 强事务 弱事务
查询 支持sql复杂查询 更适合简单查询

个人感觉:
关系型数据库就像一位老员工,他虽然慢,思维也比较固定,但给人的感觉就是一个字 : 稳
非关系型数据库就像年轻小伙,虽然经验不是很丰富,但是干劲十足,相信以后必将是他的天下

一个大型的公司,必定是新老员工都要有的.
对于大型系统而言,基本上也都是非关系型数据库和关系型数据库共存的.
非关系型数据库承担大部分查询,但最终的写入存储,还是使用关系型数据库


2.非关系型数据库的分类

  2.1 k-v型存储

    2.1.1 Redis

    
1.支持五种基本类型(String,List,Set,Hash,Sorted Set)
2.基于内存存储,两种持久化方式(RDB快照和AOF)

RDB是固定时间将内存转存磁盘 : 重启恢复快,但不是高可用(最近数据可能会来不及存入磁盘)
save 900 1   在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。
save 300 10    在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。
save 60 10000   在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照。
AOF是将Reids的操作日志以追加的方式写入文件 : 相对高可用,但重启恢复相对慢
appendfsync always   每次有数据修改发生时都会写入AOF文件。
appendfsync everysec   每秒钟同步一次,该策略为AOF的缺省策略。
appendfsync no   从不同步。高效但是数据不会被持久化。

3.操作快(纯内存操作,单线程操作避免上下文频繁切换,采用非阻塞I/o多路复用机制)
4.操作是原子性的,要么成功执行,要么失败完全不执行
5.可以手动实现事务 : MULTI和EXEC指令
6.Redis分布式锁
7.Redis做缓存
8.Redis命令:http://www.redis.net.cn/
      

    2.1.2 memcached

1.分布式内存对象缓存系统
2.所有数据都在内存中,没有持久化(注意与redis对比)
3.数据结构较为单一
4.可以修改最大可用内存,采用LRU算法
5.在并发场景下,用cas保证一致性
6.支持集群
7.适用于数据库缓存(主流)
8.总而言之,个人觉得综合下来,redis比memcached好,redis甚至可以完全替代memcached.

  2.2 列存储

    2.2.1 Hbase

1.存储在hdfs之上的,是对hdfs的封装,简化了hdfs的操作
2.没有事务
3.基于内存
4.只支持key查询(这个和redis一样)
5.面向列存储(传统数据库是面向行存储的,一行有多列。而hbase一行只存储一列,所以说是面向列存储的
6.hbase中没有库的概念,但有个命名空间namespace,类似于库
7.hbase中有table表的概念
8.hbase中多了一个列簇的概念,column family。分类管理列,一个列簇是由多个相同特性的列组成,一个表中有多个列簇,列簇必须在创建表的时候指定
9.一个列簇下可以有多个列column,列簇下的列可以动态添加,列名需要在添加列名的时候指定
10.每个列名对应的值value,同一条数据可以有多个值,每个值对应一个版本,通过timestap当版本号,一个value默认可以保存三个版本
11.总而言之,大数据生态圈的存储,用hbase
  

  2.3 文档存储

    2.3.1 MongoDB

1.面向集合(collection,类似表,但无模式)存储,schemeless
2.支持动态查询,语法丰富(这是我认为mongodb潜力比较大的原因之一)
3.支持丰富的数据类型
4.支持索引
5.支持javascript shall(小部分不支持,比如alert),因为内置js解释器
6.总而言之,数据库能干的mongodb几乎都差不多,非数据库能干的mongodb也差不多,个人很看好mongodb,只不过现在这方面没有数据库那么成熟,没有被特别广泛的用起来
  

  2.4 图型存储

    待研究

3.非关系型数据库的用处

[数据库]---nosql,非关系型数据库整理相关推荐

  1. mysql同步大师_数据库大师成长日记:您最需要了解的NoSQL非关系型数据库

    朋友们,我们平时使用的数据库,大多都是关系型数据库,包括MySQL.PostgreSQL.SQLServer等.关系型数据库的特点是数据的存储通过二维表格实现,将数据存储在相互独立的表格中. 近年来, ...

  2. nosql非关系型数据库_从Datomic出发,革命性的非NoSQL数据库

    nosql非关系型数据库 我终于设法了解了当今最不寻常的数据库之一,Datomic,并希望与您分享. 感谢Stuart Halloway和他的工作室! 为什么?!? 我们很快就会看到,Datomic与 ...

  3. 入门nosql数据库(非关系型数据库)

    MySQL数据库(关系型数据库)与nosql数据库(非关系型数据库)的区别

  4. NOSQL 非关系型数据库(redis)

    NOSQL 非关系型数据库(redis) ---------------------------------------------------------- 0. NoSQL 产品(key-valu ...

  5. 1、数据库是什么?关系型数据库和非关系型数据库又是什么?

    在学习数据库之前,应该先理解什么是数据.本节先介绍数据以及数据库的概念,再对关系型数据库和非关系型数据库的优缺点进行分析. 描述事物的符号称为数据.数据有多种表现形式,可以是数字,也可以是文字.图形. ...

  6. MySQL数据库是非关系_MySQL(数据库)基础知识、关系型数据库yu非关系型数据库、连接认证...

    什么是数据库? 数据库(Database):存储数据的仓库 高效地存储和处理数据的介质(介质主要是两种:磁盘和内存) 数据库系统:DBS(Database System):是一种虚拟系统,将多种内容关 ...

  7. 数据库知识 | 关系型数据库与非关系型数据库小记录

    用一句话来概括数据库作用--数据库用来组织.存储.管理数据.现在信息时代,可以说数据已经成为了一个十分重要的资源,对一家企业来说甚至可以称为最为核心的竞争力,管理好数据资源尤为重要. 文章目录 一.数 ...

  8. 关系型数据库和非关系型数据库的区别

    关系型数据库和非关系型数据库的区别 待会总结,先自我学习先 一 关系型数据库 有 我们只需要 记住常用的几个:mysql /oracle/sql server/sqlite 几个即可 我还有一篇文章 ...

  9. 简述关系型数据库和非关系型数据库

    当前数据库分为关系型数据库和非关系型数据库 关系型数据库 关系型数据库:指采用了关系模型来组织数据的数据库. 关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据 ...

最新文章

  1. 【转】触屏手机电话拨打链接
  2. Gut-2018-菌群标志物有望诊断早期肝癌
  3. oracle 11g-R2安装
  4. PHP中复杂类型的一些探究。。。
  5. java.lang.integer_java 中 关于java.lang.ArrayStoreException: java.lang.Integer异常,是什么原因?...
  6. array_filter()用法
  7. 朴素贝叶斯分类器python_朴素贝叶斯算法的python实现 -- 机器学习实战
  8. 火箭工作室c++小游戏——斗地主
  9. 史上最详细的 Win10系统重装教程(纯净版)
  10. 自定义Unity调色板
  11. 用自己写的六爻装卦程序了占卜一下 2010 年
  12. Image segmentation of nasopharyngeal carcinoma using 3D CNN with long-range skip connection and mult
  13. MOOC翁恺老师零基础学Java语言课程编程题——第六周
  14. JavaScript分页功能如何实现
  15. 【翻译】CEDEC2014跨世代多平台并行开发PS4版如龙维新开发的一年
  16. 正方形里面两个扇形相交部分_边长为1的正方形内,两个扇形,一个半圆,求阴影面积....
  17. python抢鞋nike,snkrs怎么抢鞋 nike snkrs抢鞋步骤
  18. 我是一个坚持“朝九晚五”的程序员
  19. ubuntu 配置 vino-server
  20. 集合{LinkedHashMap TreeMap HashSet LinkedHashSet TreeSet 快速失败机制 ConcurrentHashMap CAS 多线程协同扩容}(二)

热门文章

  1. Nginx+Fastdfs
  2. JMX学习笔记(一)-MBean
  3. 使用ant自动生成签名的apk
  4. AJAX Control Toolkit 控件学习(转自csdn山巅)
  5. linux的驱动开发——内核模块如何使用?
  6. 牛客21781 牛兄牛弟
  7. Leetcode--27. 移除元素
  8. mysql第五章 在线测试_PHP+MySQL来实现在线测试quiz功能
  9. python bootstrap 视频_想用Django+ Bootstrap写一个网站, 有哪些比较系统完整的书或者视频可以参考?...
  10. 电商项目的并发量一般是多少_掌握这些,高并发秒杀系统就不用担心了!