目录
注:本文参考自前辈周阳的Redis教程
入门概述(下)
3.能干嘛
易扩展
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。
大数据量高性能
NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。
这得益于它的无关系性,数据库的结构简单。
一般MySQL使用Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。
而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了。
数据库redis读写性能:1秒钟,写8w次,读11w次
多样灵活的数据模型
NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。
而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。
传统RDBMS VS NOSQL
RDBMS
- 高度组织化结构化数据
- 结构化查询语言(SQL)
- 数据和关系都存储在单独的表中
- 数据操纵语言,数据定义语言
- 严格的一致性
- 基础事务
NoSQL
- 代表着不仅仅是SQL
- 没有声明性查询语言
- 没有预定义的模式
- 键-值对存储,列存储,文档存储,图形数据库
- 最终一致性,而非ACID属性
- 非结构化和不可预知的数据:
- CAP定理
- 高性能,高可用性和可伸缩性
4.去哪下(有哪些NoSQL)
去官网下载
- Redis
- Memcached (高速缓存)
- MongDB
5.怎么玩
- KV (键值对)
- Cache (缓存)
- Persistence(持久化)
3V + 3高
大数据时代的3V
- 海量Volume(淘宝双11、微信朋友圈发消息发照片)
- 多样Variety( 微博:数据种类、表现形式等多样,需要可以发文字、图片、视频、背景音乐,需要可以在平板、pc、手机等终端自适应)
- 实时Velocity(12306 也做不到绝对的实时)
互联网需求的3高
- 高并发:12306、抢红包、秒杀
- 高可括: 指横向扩展,如并行加服务机器,一个用不了,加到两个...一直到集群。 纵向扩展:内存(2G-16G)、cpu(i3-i7,单核-8核)、固定硬盘提升等纵向增长有极限,所以考虑横向扩展
- 高性能:单点故障、容灾备份