Redis01 : NoSQL和Redis简介

1、NoSQL简介

1.1 数据库应用的演变历程

单机数据库时代、Memcached时代、读写分离时代、分表分库时代(集群)、nosql时代。

1.1.1 单机数据库时代

Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。

1.1.2 Memcached时代、读写分离时代(缓存 + 垂直拆分)

网站很多情况都是在读数据,如果每次都要去数据库查询数据库就显得很麻烦。这时候可以使用缓存来提高读数据的效率。

1.1.3 分表分库时代((缓存 + 水平拆分 + MySQL集群)

通过分表分库来解决数据库写的压力!

1.1.4 NoSQL时代

随着时代的发展,用户访问量大幅度提升,同时产生了大量的用户数据。所以MySQL等关系型数据库已经远远不够用了。MySQL有时用来存储一些比较大的文件会导致数据库表很大,查询效率从而变得很低!但是在大数据的压力下,这些数据表几乎没法更大,这时候就应该研究如何让MySQL压力变得十分小。

1、解决CPU及内存压力

2、解决IO压力

示例:一个大型电商网站阿里巴巴

#1、商品的基本信息

	名称、价格、商家信息
	关系型数据库就可以解决,比如MySQL / Oracle

#2、商品的描述、评论
	保存在文档数据库中,比如MongoDB

#3、图片信息
	分布式系统,比如FastDFS
	- 淘宝自己的 TFS
	- Google的 GFS
	- Hadoop HDFS
	- 阿里云的 oss

#4、商品关键字
	搜索引擎,比如solr、elasticsearch
	
#5、商品热门的波段信息
	内存数据库,比如Redis、Tair、Memcache……

#6、商品的交易,外部的支付接口
	第三方应用

1.2 什么是NoSQL

1.2.1 NoSQL数据库的概述

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指**非关系型的数据库**。

今天随着互联网web2.0网站的兴起,比如谷歌或Facebook每天为他们的用户收集万亿比特的数据,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展,就是一个数据量超大。传统的SQL语句库不再适应这些应用了。NoSQL数据库是为了解决大规模数据集合多重数据种类带来的挑战,特别是超大规模数据的存储。

NoSQL数据库的一个显著特点就是去掉了关系数据库的关系型特性,数据之间一旦没有关系,使得扩展性、读写性能都大大提高。NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。

  • 不遵循SQL标准。
  • 不支持ACID。
  • 远超于SQL的性能。
1.2.2 NoSQL特点
  • 对数据高可扩展性的(数据之间没有关系,具有很好扩展性)

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

  • 数据类型多样性(不需要事先设计数据库)

1.2.3 传统关系型数据库(RDBMS)和NoSQL区别

传统的 RDBMS

  • 结构化组织
  • SQL
  • 数据和关系都存在单独的表中
  • 严格的一致性
  • 基础的事务
  • ……

NoSQL

  • 不仅仅是数据
  • 没有固定的查询语言
  • 键值对存储、列存储、文档存储、图形数据库
  • 高性能、高可用、高扩展
  • ……
1.2.4 NoSQL的四大分类
KV键值对
  • 新浪:Redis
  • 美团:Redis + Tair
  • 阿里、百度:Redis + Memcache

Memcache

Redis

文档型数据库
  • MongoDB
    • MongoDB是一个基于分布式文件存储的数据库,主要用来处理大量的文档
    • MongoDB是一个介于关系型数据库和非关系型数据库中的中间产品

MongoDB

行列式存储数据库(大数据时代)
  • 行式数据库

  • 列式数据库

    • Hbase:HBase是Hadoop项目中的数据库。它用于需要对大量的数据进行随机、实时的读写操作的场景中。

    • HBase的目标就是处理数据量****非常庞大*的表,可以用*普通的计算机处理超过10亿行数据**,还可处理有数百万元素的数据表。

图关系型数据库
  • Neo4j
  • 主要应用:社会关系,公共交通网络,地图及网络拓谱(n*(n-1)/2)

2、Redis入门

2.1 Redis简介

  • Remote Dictionary Server(远程字典服务器),是一个用C语言编写的、开源的、基于内存运行并支持持久化的、高性能的NoSQL数据库.也是当前热门的NoSQL数据库之一。

2.2 Redis特点

#1、支持数据持久化

​	Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。

#2、支持多种数据结构

​	Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset(sorted set --有序集合),hash等数据结构的存储。

#3、支持数据备份

​	Redis支持数据的备份,即master-slave模式的数据备份。

2.3 Redis应用场景

2.3.1 配合关系型数据库做高速缓存
  • 高频次,热门访问的数据,降低数据库IO
  • 分布式架构,做session共享

2.3.2 多样的数据结构存储持久化数据

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@烟雨倾城ゝ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值