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:主要描述问题的
-
海量 Volume
-
多样 Variety
-
实时 Velocity
大数据时代的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,MongDB | Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容) | Key-Value对应的键值对,Value为结构化数据 | 数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构 | 查询性能不高,而且却反统一的查询语法 |
| 图形数据库(Graph) | Neo4J,InfoGrid,Infinite Graph | 社交网络,推荐系统等。专注于构建关系图谱 | 图结构 | 利用图结构相关算法。比如最短路径相对寻址,N度关系查找等 | 很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案 |
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
