目录
一、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:
- - Mozilla
- - Adobe
- - Foursquare
- - 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时就选用了这个端口。