关于redis:Redis-系列redis-学习一数据库的演进及-Nosql-的初步认知

38次阅读

共计 1935 个字符,预计需要花费 5 分钟才能阅读完成。

Nosql

为什么要用 Nosql?

咱们一起来看看数据库的倒退过程

1、单机的 MYSQL 时代

利用拜访数据库是 利用 – DAL 数据库拜访层 – DB 数据库

在单机的 MYSQL 时代,数据都不会太大,而且网页也是动态网页,个别网站的访问量也小,因而单数据库就齐全够用了

下面这种网站,瓶颈就会很显著:

  • 数据量变得大了,一个机器放不下如何解决
  • 数据的索引(B+ Tree),一个机器的内存放不下了如何解决
  • 读写的访问量,一个服务器接受不了了如何解决

随着历史进程的演进,下面这种网站必然会面临如上问题,就必须要解决

2、Memecache + MYSQL + 垂直拆分

为了解决下面的问题,一个机器解决不过去,咱们就放多个机器,然而如何保证数据的一致性呢?

因而就想到了读写拆散,专门指定一个数据库用于写数据,其余数据库用于读取数据,并且其余的数据库会同步用于写数据的 MYSQL 中的数据

慢慢的发现每次申请,都须要去操作数据库,这样耗时耗力,须要扭转

因而在拜访数据库之前,退出了缓存服务器 Memcache,第一次读取数据库,第二次读取的时候在数据库不扭转的状况下,读取 Memcache 中的数据,减小数据库的压力

这一块倒退历程是这样的:

优化数据库的构造和索引 – 文件缓存(IO)– 缓存服务器 Memcache

3、分库分表 + 程度拆分 + MYSQL 集群

随着技术倒退,业务也跟着飞越倒退,也就带来了更多的问题

最开始咱们应用的 MYSQL 应用的引擎的是 MyISAM,他是 表锁,非常影响效率,当在高并发的状况下,问题尤为显著

前面就有了 MYSQL 的 InnoDB 引擎,他是 行锁,随着业务的不停增长,就有了 MYSQL 集群

应用集群的形式,每一个集群存储一部分数据,若数据量依然回升,那么持续减少集群部署

4、当初

因为古代的数据量真的十分大了,大数据时代了,MYSQL 关系型数据库就不够用了,当初数据量多,变动快,以前应用 MYSQL,设计的时候,就得把所有字段,可能用到的字段,全副想分明,设计明确,对于当初瞬息万变的时代,这就很难了

当初就会冀望,例如存储文件的有文件服务器,存储图片的有图片服务器,有专门的数据库来存这些数据,那么 MYSQL 的压力就会小很多

当初 的互联网我的项目简略来看是这个样子的

对于这样的互联网我的项目,就十分须要 Nosql 了,Nosql 能解决上述呈现的问题

Nosql 是什么?

Nosql

Not only sql,不仅仅是 sql

泛指非关系型数据库,随着 web2.0 互联网的诞生,传统的关系型数据库很难凑合 web2.0 时代了

例如当初互联网用户须要存储个人信息,定位信息,社交网络等等数据,Nosql 对于这些数据存储不须要用一个固定的格局就能够存储,而且很轻易就能够横向扩大,例如 Map<string,interface{}>,应用键值对来管制就很 nice 了

Nosql 的特点

  • 不便扩大,因为数据之间没有关系,很容易扩大
  • 高性能,例如 redis 1 秒能写 8 万次,能读 11 万次,且 Nosql 的存储是记录级别的,是一种细粒度的缓存,因而性能高
  • 数据类型多样,不须要当时设计数据库

咱们来比照一下传统型的关系型数据库(RDBMS)和 Nosql

RDBMS

  • 结构化组织
  • sql 语句
  • 数据和关系都存在独自的表中
  • 数据操作,数据定义语言
  • 严格的一致性
  • 事务处理 等等

Nosql

  • 不仅仅是数据
  • 没有固定的查询语言
  • 键值对存储,列存储,文件存储,图形数据库 例如社交关系等等
  • 最终一致性
  • CAP 定理和 BASE 原理
  • 高可用,高性能,高可扩大

顺便一起分享一下 3 V 和 3 高别离是什么:

3 V,次要是用来形容问题的:

  • 海量数据 volume
  • 多样性 variety
  • 实时性 velocity

3 高,次要是用来形容对程序的要求

  • 高并发
  • 高性能
  • 高可扩大

Nosql 的四大分类

KV 键值对:

  • Redis

C 编写的,单过程的 Nosql,阿里,腾讯,百度,字节等公司都在用应用

文档型数据库:

  • Mongdb

Mongdb 是一个基于分布式文件存储的数据库,C++ 编写的,次要用来解决大量的文档

Mongdb 还是一个介于关系型数据库和非关系型数据库两头的产品,他是非关系型数据库中性能最丰盛的,最像关系型数据库的非关系型数据库

列存储型数据库:

  • HBase
  • 分布式文件系统

图关系型数据库:

  • Neo4j
  • InfoGrid

图关系型数据库不是存储图形,而是寄存关系,例如社交关系网络

咱们来比照一下上述四种分类:

图片来源于网络,这张图片曾经很清晰的形容了 KV 键值对,文档型数据库,列存储数据库,图形数据库的案例,数据模型,优缺点,当初对于 Nosql 会有了一个大体的认知了吧

欢送点赞,关注,珍藏

敌人们,你的反对和激励,是我保持分享,提高质量的能源

好了,本次就到这里

技术是凋谢的,咱们的心态,更应是凋谢的。拥抱变动,背阴而生,致力向前行。

我是 小魔童哪吒,欢送点赞关注珍藏,下次见~

正文完
 0