从零开始的Redis(1) NoSQL数据库简介和Redis简介

目录

一、NoSQL数据库简介:

1、NoSQL数据库概述

2、NoSQL技术发展的原因

3、NoSQL适用场景/不适用的场景

5、NoSQL数据库的几大代表:

6、有那些公司在使用NoSQL数据库

 二、Redis简介

 1、认识Redis

2、Redis 优势

 3、Redis与其他key-value存储有什么不同?

4、Redis应用场景:

 5、Redis小趣事:端口6379从何而来?


一、NoSQL数据库简介:

介绍redis之前我们先了解NoSQL数据库吧。

1、NoSQL数据库概述

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

NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力

在现代的计算系统上每天网络上都会产生庞大的数据量。

这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理。 1970年 E.F.Codd's提出的关系模型的论文 "A relational model of data for large shared data banks",这使得数据建模和应用程序编程更加简单。

通过应用实践证明,关系模型是非常适合于客户服务器编程,远远超出预期的利益,今天它是结构化数据存储在网络和商务应用的主导技术。

NoSQL 是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。

小结:

  • 不遵循SQL标准。

  • 不支持ACID。

  • 远超于SQL的性能

2、NoSQL技术发展的原因

1) Web1.0时代

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

2) Web2.0时代

随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。

 

3)解决思路:

1、解决IO压力:

 2、解决CPU及内存压力

3、NoSQL适用场景/不适用的场景

1)适用场景:

  • -对数据高并发的读写

  • -海量数据的读写

  • -对数据高可扩展性的

2)不适用场景:

  • -需要事务支持

  • -基于sql的结构化查询存储,处理复杂的关系,需要即席查询。

  • -(用不着sql的和用了sql也不行的情况,请考虑用NoSql)

4、NoSQL的优点/缺点

优点:

  • - 高可扩展性

  • - 分布式计算

  • - 低成本

  • - 架构的灵活性,半结构化数据

  • - 没有复杂的关系

缺点:

  • - 没有标准化

  • - 有限的查询功能(到目前为止)

  • - 最终一致是不直观的程序

5、NoSQL数据库的几大代表:

1)Memcache

 2)Redis  

 3)MongoDB

6、有那些公司在使用NoSQL数据库

现在已经有很多公司使用了 NoSQL:

  • - Google
  • - Facebook
  • - Mozilla
  • - Adobe
  • - Foursquare
  • - LinkedIn
  • - Digg
  • - McGraw-Hill Education
  • - Vermont Public Radio

 二、Redis简介

 1、认识Redis

Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。

Redis 与其他 key - value 缓存产品有以下三个特点:

  • - Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • - Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • - Redis支持数据的备份,即master-slave模式的数据备份。

2、Redis 优势

  • - 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
  • - 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
  • - 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
  • - 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

 3、Redis与其他key-value存储有什么不同?

- Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
- Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

4、Redis应用场景:

1)配合关系型数据库做高速缓存

这是Redis最常用的场景,因此Redis经常把称呼为中间件

高频次,热门访问的数据,降低数据库IO

分布式架构,做session共享

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

经典秒杀项目,在近几年双11这种大型活动中表现的尤为显眼,这也是大厂爱考Redis的原因之一。

 

 5、Redis小趣事:端口6379从何而来?

用一张图片来翻译一下,6379 就是这个意思:

 

 6379刚好就是Merz,而而Merz全名Alessia Merz,是意大利的一名演员。MERZ长期以来被Redis作者antirez及其朋友当作愚蠢的代名词。后来Redis作者在开发Redis时就选用了这个端口。

猜你喜欢

转载自blog.csdn.net/OMGcome/article/details/123774901