一、关系型数据库介绍(SQL)

 

1、mysql,oracel特点:

 

  • 数据和数据之间,表和字段之间,表和表之间是存在关系的

         例如:部门表001部分,员工表001之间存在关系的

  • 用户表、用户名、密码、分类表和商品表,一对多关系型

 

2、优点:

 

  • 数据之间有关系,进行数据的增删改查时非常方便的。
  • 关系型数据库有事务操作,保证数据完整性

 

3、缺点:

 

  • 因为数据和数据之间有关系的,是由底层大量算法保证数据有关系,大量算法会拉低系统运行速度,
  • 如:select * from  user; 每执行一次查询会执行一次大量算法。大量算法会消耗系统资源
  • 在面对海量数据的增删改查会显得无能为力,很可能会导致数据库宕机。
  • 大量数据环境下对数据表进行维护,效率很低,例如:更新商品表的一个字段 update product  cname='手号数码'  ,这里没有使用where条件语句会修改所有的数据,直接导致宕机。

 

适用场景:

适合处理数据量不是很大的,保证数据安全。

 

图示:

Java 非关系和关系型数据库的区别 关系与非关系数据库_数据

 

 

 

二、非关系型数据库(NOSQL)

nosql不仅仅是SQL,为了处理大量数据,需要将关系型数据库的“关系”去掉,每次运行大量算法,节约了系统的性能和效率。

非关系型数据库设计之初是为了替代关系型数据库

1、Redis简介:

redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库,支持网络,可基于内存持久化的日志型,key-value数据库

 

2、redis特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

 

优点:海量数据的增删改查,非常轻松,维护轻松

 

缺点:

1、数据和数据之间没有关系,所以不能一目了然,数据和数据之间是单独存放的

2、没有强大的事务支持,不能保证数据的完整和安全性

 

应用场景:适合处理大量的数据,效率高,数据不安全

 

企业场景:mysql+redis 重要并且数据量不是很大(十几万)放到mysql,海量数据并且不是很重要的放到redis

 

三、nosql数据库的四大分类

键值(key-value)存储数据库

典型应用:内容缓存,主要用于处理大量数据的高访问负载。

数据模型:一系统列键值对

优势:优秀的快速查询,稳定性强

劣势:存储的数据缺少结构化

 

 

Java 非关系和关系型数据库的区别 关系与非关系数据库_redis_02

 

 

 

 

 

四、什么是redis

redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,它通过提供多种键值数据类型来适应不同场景下存储需求,目前为止redis支持的键值数据类型如下:

1、字符串类型

2、散列类型

3、列表类型

4、集合类型

5、有序集合类型

官方提供测试数据:50个并发请求100000个请求,读的速度是110000次/s写的速度是81000次/s。

 数据仅供参考,根据服务器配置会有不同结果。

 

 

Java 非关系和关系型数据库的区别 关系与非关系数据库_redis_03

 

 五、redis读取数据流程

 

Java 非关系和关系型数据库的区别 关系与非关系数据库_数据_04