一、关系型数据库介绍(SQL)
1、mysql,oracel特点:
- 数据和数据之间,表和字段之间,表和表之间是存在关系的
例如:部门表001部分,员工表001之间存在关系的
- 用户表、用户名、密码、分类表和商品表,一对多关系型
2、优点:
- 数据之间有关系,进行数据的增删改查时非常方便的。
- 关系型数据库有事务操作,保证数据完整性
3、缺点:
- 因为数据和数据之间有关系的,是由底层大量算法保证数据有关系,大量算法会拉低系统运行速度,
- 如:select * from user; 每执行一次查询会执行一次大量算法。大量算法会消耗系统资源
- 在面对海量数据的增删改查会显得无能为力,很可能会导致数据库宕机。
- 大量数据环境下对数据表进行维护,效率很低,例如:更新商品表的一个字段 update product cname='手号数码' ,这里没有使用where条件语句会修改所有的数据,直接导致宕机。
适用场景:
适合处理数据量不是很大的,保证数据安全。
图示:
二、非关系型数据库(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)存储数据库
典型应用:内容缓存,主要用于处理大量数据的高访问负载。
数据模型:一系统列键值对
优势:优秀的快速查询,稳定性强
劣势:存储的数据缺少结构化
四、什么是redis
redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,它通过提供多种键值数据类型来适应不同场景下存储需求,目前为止redis支持的键值数据类型如下:
1、字符串类型
2、散列类型
3、列表类型
4、集合类型
5、有序集合类型
官方提供测试数据:50个并发请求100000个请求,读的速度是110000次/s写的速度是81000次/s。
数据仅供参考,根据服务器配置会有不同结果。
五、redis读取数据流程