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

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

Tables 关系型数据库 非关系型数据库
成本 mysql免费;oracle收费 开源的,免费的
存储与查询 硬盘存储,相对查的慢 内存存储,查的快
存储格式 只能是基本格式 多种多样
年龄 出现时间较长,较成熟 后起之秀,不可小觑
扩展性 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分钟)之后,如果至少有1key发生变化,则dump内存快照。
save 300 10    在300秒(5分钟)之后,如果至少有10key发生变化,则dump内存快照。
save 60 10000   在60秒(1分钟)之后,如果至少有10000key发生变化,则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

  2.2 列存储

    2.2.1 Hbase

  2.3 文档存储

    2.3.1 MongoDB

  2.4 图型存储

    待研究

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

猜你喜欢

转载自blog.csdn.net/java_zhangshuai/article/details/80753754
今日推荐