1、数据库简述(Redis数据库)
1、数据库简述
1.1 数据库发展简述
为什么要用Nosql?
因为我们现在处于2020年,大数据时代!需要数据库高性能、高并发、高可扩!
单机时代--------> 多机时代----------->集群时代 ----------->NoSQL时代
1.1.1 单机时代(读写一体)
用APP(客户端)通过查询语言(DAL)访问数据库(Mysql等数据库)

90年代,更多的是去使用静态网页Html,一个基本的网站访问量一般不会太大,单个数据库完全足够!
单机年代的弊端:
1、数据量太大,一个机器放不下;
2、数据的索引(B + Tree )太大,一个机器内存也放不下;
3、访问量(读写混合)太大,一个服务器承受不了。
只要你开始出现以上的三种情况之一,单机Mysql无法满足服务需求,需要升级!
1.1.2 多机时代(读写分离 + 缓存)
用读写分离和缓存技术,减轻服务器数据读写压力,保证读写效率!(Memcached(缓存) + MySQL等数据库 + 垂直拆分 )
发展过程:优化单机数据库数据结构和索引 -- > 文件缓存(IO) -- > Memcached (当时最热门的技术)

1.1.3 集群时代(分库分表)
数据库本质:数据读和写。
-
MyISAM:表锁,高并发下会出现严重的锁问题,十分影响效率。
-
Innodb: 行锁。
-
MySQL的集群:满足集群时代数据读写需求。

1.1.4 Nosql时代
NoSQL = Not Only SQL (不仅仅是SQL) 泛指非关系型数据库。
随着web2.0互联网的诞生,传统的关系型数据库很难满足要求,超大规模的高并发需求会暴露出关系型数据库很多问题,所有NoSQL在当今大数据环境下发展的十分迅速,Redis是发展最快的,而且是我们当下必须掌握的一个技术。
NoSQL数据类型
社交网络、地理位置、个人信息等,不是一个固定的格式。
NoSQL特点
- 方便扩展(数据之间没有关系,很好扩展!)
- 大数据量高性能(Redis --> 1秒可以写8万次,读取11万次)
- 数据类型是多样型的!(不需要事先设计数据库,随取随用,因为数据量十分大,很难设计)
- 传统RDBMS和NoSQL
- 传统RDBMS: 结构化组织、SQL、数据和关系都存在单独的表中、操作并定义语言、严格的一致性、基础事务操作......
- NoSQL : 不仅仅是数据库、没有固定的查询语言、键值对存储、列存储、文档存储、图形数据库(社交关系)、最终一致性、CAP定理和BASE、高性能、高可用、高可扩......
大数据时代3V + 3高
大数据时代的3V:主要是描述问题的
-
海量Volume
-
多样Variety
-
实时Velocity
大数据时代的3高:主要是对程序的要求
- 高并发
- 高可扩
- 高性能
1.2 企业级别架构
企业级服务器集群(NoSQL + RDBMS 一起使用才是最强的)

1.3 NoSQL的四大分类
MongoDB、Hbase、Redis等NoSQL优劣势、应用场景

1.3.1 KV键值对
- 新浪:Redis
- 美团:Redis + Tair
- 阿里、百度:Redis + memecache
1.3.2 文档型数据库(bson格式和json一样)
- MongoDB(C ++ 编写)
- 一个基于分布式文件存储的数据库,主要用于处理大量的文档;
- 介于关系型数据库和非关系型数据库之间,非关系型数据库中功能最丰富,最像关系型数据库。
- ConchDB
1.3.3 列存储数据库
- HBase
- 分布式文件系统
1.3.4 图形数据库
图形数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。最常见例子就是社会网络中人与人之间的关系。



浙公网安备 33010602011771号