欢迎光临散文网 会员登陆 & 注册

【狂神说Java】Redis最新超详细版教程通俗易懂

2023-02-22 15:13 作者:小吕超机智  | 我要投稿

一、Nosql概述

为什么要用Nosql?

现在是大数据时代,大数据时代一般的数据库无法继续分析处理了!2006年Hadoop。Hadoop是一个由Apache基金会所开发的分布式系统基础架构, 是一个存储系统+计算框架的软件框架。主要解决海量数据存储与计算的问题,是大数据技术中的基石。Hadoop以一种可靠、高效、可伸缩的方式进行数据处理,用户可以在不了解分布式底层细节的情况下,开发分布式程序,用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。

为什么要用Nosql?

单机MySQL

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

更多使用的静态网页HTML,服务器没有太大压力。

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

2、数据量超过300w,会导致搜索变慢,需要建立索引,一个机器放不下。

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

只要出现上述之一,就需要另寻他法。

二、缓存memcaced+mysql+垂直拆分

通过缓存来减轻数据库压力

三、分库分表+水平拆分+mysql集群

本质:数据库(读,写)

MyISAM:表锁

innodb:行锁

慢慢的使用分库分表解决写的压力。Mysql推出了表分区(没有多少人使用),mysql的集群(很好的满足了那个年代的所有需求)

四、如今的年代

mysql等关系型数据库不够用了,数据量很多,变化很快!

有的使用mysql去存储一些较大的文件,如blog、图片等,数据库表会变大,运行效率就会降低,可以寻找一个专门的数据库来进行存储该类信息,来分担mysql的压力。

5、目前一个基本的互联网项目

五、为什么要用NoSQL!

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

这时候我们就需要用Nosql数据库的,Nosql可以很好的处理以上情况。

六、什么是Nosql

Nosql=not only sql

关系型数据库:类似于excel表格,行列

泛指非关系型数据库,随着web2.0诞生,尤其是超大规模的高并发社区。Nosql发展尤为迅速,redis是发展最快,是当下必掌握的技术。

Nosql特点

解耦!

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

2、大数据量高性能(redis一秒写8w,读11w,)

3、数据类型是多样的,(不需要设计数据库,随取随用)

传统数据库与NoSQL对比

1、传统数据库

-结构化组织

-sql语言

-数据和关系都存在单独的表中

-数据定义语言

-严格的一致性

-基础的事务

2、Nosql

-不仅仅是数据

-没有固定的查询语言

键值对存储,列存储,文档存储、图形数据库(社交关系)

-最终一致性

-cap定理、base (异地多活)初级架构师

-高性能、高可用、高可扩

真正的在公司中实践:

Nosql+关系型数据库

1、商品基本信息(名称、价格、商家信息)

使用关系型数据库,如:mysql(王坚)、orcle解决

2、商品的描述、评价(文字较多)

使用文档型数据库,如MongoDB进行解决

3、图片

分布式文件系统FASTDFS

-淘宝TFS

-Google:GFS

-Hadoop:HDFS

阿里云:oss

4、商品的关键字(搜索)

-搜索引擎 solr elasticsearch

-ISerach:多隆

5、商品的热门的波段信息

-内存数据库

-redis tair、Menache

6、商品的交易、外部支付接口

-三方应用

大型互联网面对的问题:

  • 数据类型太多
  • 数据源繁多,重构问题
  • 数据要改造,大面积改造

解决问题:加一层

NoSQL四大分类

KV键值对

  • 新浪:redis
  • 美团:redis+Tair
  • 阿里、百度:redis+memecache

文档型数据库(bson格式)

  • MongoDB(一般必须要掌握)

MongoDB是基于分布式的文件储存数据库,C++编写,主要用于处理大量文档。

MongoDB是介于关系型和非关系型之间的一种数据库。

MongoDB是非关系型数据库中功能最丰富、最像关系型数据库的

  • ConthDB

列存储数据库

  • HBase
  • 分布式文件系统

图形关系数据库

并不是存储图形,放的是关系,比如:朋友圈社交网络,广告推荐。如Neo4j,InfoGrid

redis名为远程字典服务

是一个开源的使用c语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的API。

能实现主从同步。

redis能干嘛?

1、内存存储、持久化、内存是断电即失的,持久化机制(rdb、aof)

2、效率高,可以用于高速缓存

3、发布订阅系统

4、地图信息分析

5、计时器、计数器(浏览量)

redis默认端口:6379









【狂神说Java】Redis最新超详细版教程通俗易懂的评论 (共 条)

分享到微博请遵守国家法律