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:主要是描述问题

  1. 海量Volume

  2. 多样Variety

  3. 实时Velocity

大数据时代的3高:主要是对程序的要求

  1. 高并发
  2. 高可扩
  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 图形数据库

图形数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。最常见例子就是社会网络中人与人之间的关系。

posted @ 2020-10-30 22:37  溪奇的数据  阅读(125)  评论(0)    收藏  举报