Redis(一)【概述】

目录

    • 1. Nosql概述
    • 2. 什么式NoSQL
    • 3. NoSQL的四大分类

1. Nosql概述


为什么要用Nosql

大数据时代,一般的数据库无法进行处理了!2006年 Hadoop

Hadoop 是一个由 Apache 基金会所开发的分布式系统集成架构,用户可以在不了解分布式底层细节情况下,开发分布式程序,充分利用集群的威力来进行高速运算与存储,具有可靠、高效、可伸缩的特点

Hadoop简介

Hadoop 的核心是 YARN,HDFS,Mapreduce 常用模块架构如下:

在这里插入图片描述

  • Hadoop 是 Apache 软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构

  • Hadoop 是基于 Java 语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中

  • Hadoop 的核心是分布式文件系统 HDFS(Hadoop Distributed File System)和 MapReduce

  • Hadoop 被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力

几乎所有主流厂商都围绕 Hadoop 提供开发工具、开源软件、商业化工具和技术服务,如谷歌、雅虎、微软、思科、淘宝等,都支持 Hadoop

单机MySQL的年代,一个基本的网站访问量一般不会太大,单个数据库完全足够

瓶颈:

1、数据量太大,一个机器放不下

2、数据的索引(B + Tree),一个及其内存也放不下

3、访问量(读写混合),一个服务器承受不了

单机MySQL

在这里插入图片描述

Memcached(缓存)+ MySQL + 垂直差分(读写分离)

网站大多时候其实都是在读,每次都去查询数据库的话就十分麻烦!为了减轻数据的压力,可以使用缓存来保证效率

发展过程:优化数据结构和索引 —> 文件缓存(IO) —> Memcached(最热门的技术)

在这里插入图片描述

分库分表 + 水平拆分 + MySQL集群

本质:数据库(读,写)

数据库引擎

早些年:MyISAM 表锁,将表加锁,十分影响效率!高并发下就会出现严重的锁问题

现在:Innodb 行锁,将一行记录加锁

开始使用分库分表来解决写的压力

在这里插入图片描述

为什么要用NoSQL

用户的个人信息,社交网络,地理位置。用户自己产生的数据,用户日志等等爆发式增长!

NoSQL 数据库就能很好的处理这种情况

2. 什么式NoSQL


NoSQL

NoSQL == Not Only SQL (不仅仅是SQL)

关系型数据库:表格、行、列

泛指非关系型数据库的,随着web2.0互联网的诞生!传统的关系型数据库很难对付web2.0时代!尤其是超大规模的高并发的社区!

NoSQL 特点

1、方便扩展(数据之间没有关系)

2、大数据量高性能(Redis一秒写8万次,读取11万次,NoSQL的缓存记录级,是一种细粒度的缓存,性能会比较高)

3、数据类型的多样性(不需要实现设计数据库,随取随用,如果式数据量十分大的表,就很难精确的设计出来了)

4、传统 RDBMS 和 NoSQL

传统的RDBMS(关系型数据库)
- 结构化组织
- SQL
- 数据和关系都存在独单的表中	row column
- 操作、数据定义语言
- 一致性
NoSQL
- 不仅是数据
- 没有固定的查询语言
- 键值对存储,列存储,文档存储,图形数据库(社交关系)
- 一致性
- CAP定理和BASE
- 高性能,高可用,高可扩展

了解 3V + 3 高

大数据时代的3V:主要描述问题的

  1. 海量 Volume

  2. 多样 Variety

  3. 实时 Velocity

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

  1. 高并发

  2. 高可扩

  3. 高性能

实践中:NoSQL + RDBMS 一起使用(RDBMS 关系数据库管理系统

# 1、商品的描述文档型数据库	MongoDB# 2、图片分布式文件系统		FastDFS- 淘宝				TFS- Google		  	GFS- Hadoop		  	HDFS- 阿里云		    	oss# 3、商品的关键字(搜索)- 搜索引擎	solr elasticsearch- ISearch: 	多隆# 4、商品热门的波段信息- 内存数据库- Redis、Tair、Memcache..# 5、商品的交易,外部的支付接口- 第三方应用

3. NoSQL的四大分类


键值对(key-value)

文档型数据库(bson格式 和 json 一样)

  • MongDB(一般必须要掌握)
    • MongDB 是一个基于分布式文件存储的数据库,C++编写,主要用来处理大量的文档
    • MongDB 是一个介于关系型数据库和非关系型数据库中间的产品,MongDB 是非关系型数据库中功能最丰富,最像关系型数据库的
  • ConthDB

列存储数据库

  • HBase
  • 分布式文件系统

图形关系数据库

  • 不是存图形的,存放的是关系,比如:朋友圈社交网络,广告推荐
分类Example举例典型应用场景数据模型优点缺点
键值(key-value)Tokyo Cabinet/Tyrant,Redis,Voldemort,Oracle BDB内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等Key指向Value的键值对,通常用hash table来实现查找速度快数据五结构化,通常之被当作字符串或者二进制数据
列存储数据库Cassandra,HBase,Riak分布式的文件系统一列簇式存储,将同一列数据存在一起查找速度快,可扩展性强,更容易进行分布式扩展功能相对局限
文档型数据库CounchDB,MongDBWeb应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容)Key-Value对应的键值对,Value为结构化数据数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构查询性能不高,而且却反统一的查询语法
图形数据库(Graph)Neo4J,InfoGrid,Infinite Graph社交网络,推荐系统等。专注于构建关系图谱图结构利用图结构相关算法。比如最短路径相对寻址,N度关系查找等很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部